我有一个实现ArrayAccess
接口的类。我注意到我可以在偏移值上使用empty
函数而不会出错:
$class = new MyArrayClass();
if(!empty($class["offset"]))
...
else
die("Empty!!!");
但是,即使调用offsetGet
接口方法也不起作用:
if(!empty($class->offsetGet("offset")))
它抛出标准错误:
不能在写入上下文中使用函数返回值。
我的问题是:为什么empty
适用于吸气剂和虚拟阵列偏移量?据我所知,它们实际上是函数返回值,而不是变量......
这个问题与其说是实用的,不如说是教育性的。我只是好奇。请尽量解释。
在低于 5.5 的 PHP 版本中为空,只接受变量。
从更新日志:
5.5.0 empty() 现在支持表达式,而不仅仅是变量。