我可以使用空的魔法属性吗?

时间:2012-08-30 22:22:54

标签: php

来自PHP documentation on overloading

的引用
  

在isset()之外的其他语言结构中不能使用重载属性。这意味着如果在重载属性上调用empty(),则不会调用重载方法。

     

要解决该限制,必须将重载属性复制到作用域中的局部变量中,然后将其传递给empty()。

这是否真的意味着我不能使用像

这样的东西
if (empty($this->foobar))

在一个类中,$this->foobar是一个魔法属性,通过__get()解决,还是我在这里误解了什么?

1 个答案:

答案 0 :(得分:3)

如果您也覆盖__isset方法,它也会有效。文档编写原因是因为您无法在方法调用的结果上调用empty() or isset()