任何人都可以说出以下给定的行是什么意思吗?

下面的行是从PHP manual复制的:



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

最佳答案

这是一个文档错误:

<?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)

09-25 16:42