function __isset($property) { if( isset($this->$property) ) { echo $property.'is '.$this->$property.'.'; }else { echo $property.' is not set.<br/>'; } } function __unset($property) { unset($this->$property); echo 'Unset '.$property.' successfully.<br/>'; } }
$phone = new Phone('nokia','blue'); unset($phone->name); echo '<hr/>'; isset($phone->name); ?> 输出结果 Unset name successfully. -------------------------------------- name is not set. name is not set. 以上函数,unset掉一个属性后,isset查询该属性是否存在,则__isset()输出了两次; 如果直接isset一个不存在的属性,就会正常执行,不明白是为什么?