为什么这不适用于生产

时间:2013-11-08 15:00:22

标签: php configuration

我有一行非常简单的代码:

if(empty(trim($this->name)) {
    $this->error = "Name required";
    return false;
}

这段代码在我的开发环境中非常出色,但在生产中却抛出致命错误:

Can't use function return value in write context

为什么这个,更重要的是,我需要在开发环境中进行哪些更改,以便我的代码在开发环境和生产环境中的行为相同(也就是中断)?

非常感谢。

3 个答案:

答案 0 :(得分:2)

在5.5以下的PHP版本中,您不能将函数或方法的返回值与empty()一起使用。你必须做一个“黑客”。

// Do only if your PHP version is lower than 5.5
$trimmedVal = trim($this->name);

if(empty($trimmedVal)) {
    $this->error = "Name required";
    return false;
}

答案 1 :(得分:0)

这应该有效

$name = $this->name;
if(empty(trim($name))) {
     $this->error = "Name required";
     return false;
}

因为您无法在“empty()”中使用返回值。

答案 2 :(得分:0)

您好像已经在浏览器中写了内容。在PHP中,必须在对浏览器进行任何写入之前评估函数。如果你事后再回来,这是不可能做到的。

至少,当我使用PHP时就是这种情况。它可能适用于更新版本。