【问题标题】:Can't use function return value in write不能在写入中使用函数返回值
【发布时间】:2015-08-08 15:32:39
【问题描述】:

我在清空或修剪功能方面遇到了新问题。我猜 trim 不能返回布尔值,但我不知道为什么? :c

$author = htmlentities($_POST['author']);
        if(empty(trim($author))) $author="Unknown";

给我这个错误:

致命错误:无法在写入上下文中使用函数返回值

【问题讨论】:

  • 改用三元运算符。

标签: php


【解决方案1】:

来自http://php.net/manual/es/function.empty.php

“在 PHP 5.5 之前,empty() 只支持变量;其他任何东西都会导致解析错误。换句话说,以下内容将不起作用:empty(trim($name))。改为使用trim($name) == false。"

或者将trim($name) 保存到另一个变量中并在那里使用empty

【讨论】:

    【解决方案2】:

    单独修剪字符串变量。 trim() 不能返回布尔值,因为它返回的是字符串值。如果您的意思是 empty() 与 trim() 结合不能返回布尔值,我认为这很奇怪并且应该可以工作。 试试这个:

    $author = htmlentities($_POST['author']);
    
    $author = trim($author);
    if(empty($author)){ 
        $author = "Unknown";
    }
    

    【讨论】:

      【解决方案3】:

      http://php.net/manual/en/function.empty.php

      注意:

      在 PHP 5.5 之前,empty() 只支持变量;其他任何事情都会 导致解析错误。换句话说,以下内容将不起作用: 空(修剪($名称))。相反,请使用 trim($name) == false。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-08
        • 1970-01-01
        • 2014-01-22
        • 2015-04-13
        • 1970-01-01
        • 1970-01-01
        • 2016-09-08
        相关资源
        最近更新 更多