isset()魔术方法,比较特殊,主要用于在对未定义的属性调用isset()函数时被自动调用。
在class类中,对public权限的成员属性可以直接使用isset()函数检测值是否被设定。
但对于设置为 private 或 protected 的成员属性则不行,需要在类里面加上一个 isset() 方法:
<?php
class Test {
private $bbb = '1';
public function __isset($name) {
echo '捕捉到使用isset()函数检测私有成员属性<br/>';
return isset($this->$name);
}
}
$obj = new Test();
var_dump(isset($obj->bbb));