在写入上下文中无法使用函数返回值?

12 浏览
0 Comments

在写入上下文中无法使用函数返回值?

我有这段代码:

public function __construct($Directory = null) 
{
    if ($Directory === null) {
        trigger_error("必须设置目录!", E_USER_ERROR);
    }
    if (isset($Directory)) {
        if (!empty(trim($Directory))) { //错误行
            echo "测试"; 
        }
    }
}

(echo 是为了调试目的。)

我得到的致命错误是:

无法在写上下文中使用函数返回值。

根据 PHP Storm 的说法,返回的是:

需要变量。

但是使用来自这个问题的代码:

White spaces throwing off HTML form validation

这是正确的语法,因为我以前用过它... 但是,在这种情况下,它会引发错误。为什么会这样?

0
0 Comments

在PHP 5.5之前的版本中,empty()函数只支持变量作为参数,其他类型的参数将导致解析错误。换句话说,以下代码是无效的:empty(trim($name))。相反,应该使用trim($name) == false。

因此,解决方法是将代码拆分成以下形式:

$trimDir = trim($Directory);
if(!empty($trimDir))

原因是empty()函数在PHP 5.5之前的版本中只支持变量作为参数,而不支持函数返回值作为参数。因此,当我们尝试在empty()函数中使用函数返回值时,会导致解析错误。为了解决这个问题,我们需要将函数返回值赋给一个变量,并在empty()函数中使用该变量作为参数。

0