无法在写上下文中使用方法返回值

我认为下面的代码应该可以工作,但它不能(编辑:现在可以在PHP5.5+中工作)

如果(!empty($r->getError()))

其中getError()只是:

公共函数getError()
{
返回$this->错误;
}

但我最终还是犯了这个错误:

无法在写上下文中使用方法返回值

这是什么意思?这不就是一本书吗

empty()

然而,真正的问题是,您根本没有使用empty(),错误地认为“empty”值与“false”不同

Empty只是的别名!伊塞特($thing)| |$东西。当您要检查的内容始终存在时(在PHP中,函数调用的结果始终存在),则empty()函数只不过是一个否定运算符

PHP没有空的概念。计算结果为false的值为空,计算结果为true的值为非空。是一样的。此代码:

$x=something();
如果(空($x))…

这是:

$x=something();
如果(!$x)…

在所有情况下,对于所有数据类型,始终具有相同的结果(因为$x是定义的空()是冗余的)

方法的返回值始终存在(即使没有Return语句,返回值也存在并包含null)。因此:

如果(!empty($r->getError()))

逻辑上等同于:

if($r->getError())

发表评论