在PHP中重载

Poo*_*att 5 php php-5.3

任何人都可以告诉下面给出的线条意味着什么?

下面的行是从PHP手册复制的:

注意:

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

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

但这不是真的,我们不能在重载属性上调用empty(),当我调用empty()时,它触发了__isset()

Wri*_*ken 5

这是一个文档错误:

<?php
class PropNameReturn {
    function __isset($propname){
          return true;

    }
    function __get($propname){
          echo 'Yes, it IS called!'.PHP_EOL;
          return $propname;
    }
}
$o = new PropNameReturn();
var_dump(empty($o->this_prop_name));
//Yes, it IS called!
//bool(false)
$b = new stdClass();
var_dump(empty($b->this_prop_name));
//bool(true)
Run Code Online (Sandbox Code Playgroud)