Php 为什么empty()在接受getter输出时不接受函数返回值?
我有一个实现接口的类。我注意到我可以在偏移值上使用函数,没有错误:Php 为什么empty()在接受getter输出时不接受函数返回值?,php,Php,我有一个实现接口的类。我注意到我可以在偏移值上使用函数,没有错误: $class = new MyArrayClass(); if(!empty($class["offset"])) ... else die("Empty!!!"); 但是,即使调用offsetGet接口方法也不起作用: if(!empty($class->offsetGet("offset"))) 它抛出标准错误: 无法在写入上下文中使用函数返回值。 我的问题是:为什么要在和上工作?据我所知,它们实际
$class = new MyArrayClass();
if(!empty($class["offset"]))
...
else
die("Empty!!!");
但是,即使调用offsetGet
接口方法也不起作用:
if(!empty($class->offsetGet("offset")))
它抛出标准错误:
无法在写入上下文中使用函数返回值。
我的问题是:为什么要在和上工作?据我所知,它们实际上是函数返回值,而不是变量
这个问题很有教育意义,但不实用。我只是好奇。请尽可能多地解释。在php版本中,小于5.5的版本只接受变量
从变更日志:
5.5.0 empty()现在支持表达式,而不仅仅是变量
请参阅:请注意,如果您使用PHP5.5+(在
E_通知上有一个警告)
,这将很好地工作: