我有一行非常简单的代码:
if(empty(trim($this->name)) {
$this->error = "Name required";
return false;
}
这段代码在我的开发环境中非常出色,但在生产中却抛出致命错误:
Can't use function return value in write context
为什么这个,更重要的是,我需要在开发环境中进行哪些更改,以便我的代码在开发环境和生产环境中的行为相同(也就是中断)?
非常感谢。
答案 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时就是这种情况。它可能适用于更新版本。