public $name; 
 才返回

解决方案 »

  1.   

    可是我在类中有说明啊?如下:
        private function __isset($nm)
        {
            return isset($this->nm);
        }
      

  2.   

    name被设置为private,应该是不能直接引用的!但是你又设置了__get()这个方法了,就可以直接引用了。不信的话,你直接把$temp->name输出来,你会发现可以直接输出来。但是如果你将__get()方法删除之后,就不可以直接输出了。
    那么就不难理解为什么不可以了!isset在判断时,不会去调用__get()方法来对要判断的内容进行取值。所以在isset()中的$temp->name其实是去不到值的(因为name是private属性),所以不会返回1.但是如果将name属性设置为public,那么$temp->name就是可以直接访问的,故isset()返回1
      

  3.   

    构造函数已经把属性初始化了.肯定是isset返回1