这是一个创建于 4406 天前的主题,其中的信息可能已经有所发展或是发生改变。
<?php
class Phone {
private $band;
private $color;
private $name;
function __construct($band = 'nokia', $color = 'black', $name = 'Lumia920') {
$this->band = $band;
$this->color = $color;
$this->name = $name;
}
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一个不存在的属性,就会正常执行,不明白是为什么?