写入时不能使用函数返回值

时间:2015-08-08 15:32:39

标签: php

我在使用空或修剪功能时遇到了新问题。我猜修剪不能返回布尔值,但我不知道为什么? :C

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

给我这个错误:

致命错误:在写上下文中不能使用函数返回值

3 个答案:

答案 0 :(得分:1)

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

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

或者将trim($name)保存到另一个变量中,然后使用empty

答案 1 :(得分:0)

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

  

注意:

     

在PHP 5.5之前,empty()仅支持变量;别的什么都会   导致解析错误。换句话说,以下内容不起作用:   空(修剪($名))。相反,使用trim($ name)== false。

答案 2 :(得分:0)

分别修剪字符串变量。 trim()不能返回布尔值,因为它返回一个字符串值。如果你的意思是与trim()结合的empty()不能返回一个布尔值,我认为这很奇怪,应该可行。 试试这个:

$author = htmlentities($_POST['author']);

$author = trim($author);
if(empty($author)){ 
    $author = "Unknown";
}