0

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

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

此代码在我的开发环境中运行良好,但在生产中引发了致命错误:

Can't use function return value in write context

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

非常感谢。

4

3 回答 3

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;
}
于 2013-11-08T15:04:17.210 回答
0

这应该工作

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

因为你不能在“empty()”中使用返回值。

于 2013-11-08T15:05:14.377 回答
0

您似乎已经将内容写入浏览器。在 PHP 中,必须在对浏览器进行任何写入之前评估函数。如果您事后退货,这是不可能的。

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

于 2013-11-08T15:06:00.540 回答