问答详情
源自:5-5 魔术方法之__isset和__unset方法

当classname值不存在的时候,__get()方法不是要被调用一次么,看视频的输出结果不对呢,没有再次调用__get()方法的输出。

提问者:北鸟南游 2014-10-06 18:18

个回答

  • 干锅钱
    2017-02-14 13:56:00

    __get方法如果不返回值的话empty()就一直返回true,在empty()调用时会先调用__isset再调用__get,__isset返回false,empty()就与之相反取true而不会调用__get,__isset返回true,就会调用__get,当有返回值时相当于true,所以结果为false,这相当于一个或关系。empty(false|true) = true|false = true,empty(true|true)=false|false=false。

  • 学以致用v587
    2015-12-13 19:32:13

    视频中echo后面使用的是单引号