在 PHP 中,"isset" 和 "unset" 方法是魔术方法,用于在访问不存在的属性的时候触发。
__isset 方法:
public function __isset($name) {
echo "属性 $name 不存在";
}
__unset 方法:
public function __unset($name) {
echo "尝试删除属性 $name";
}
使用示例:
class Person {
private $name = "Tom";
public function __isset($name) {
if($name == "age") {
return true;
}
}
public function __unset($name) {
if($name == "name") {
$this -> name = "";
}
}
}
$person = new Person();
isset($person -> age); // 结果为 true,触发 __isset 方法
isset($person -> height); // 结果为 false,未触发 __isset 方法
unset($person -> name); // 触发 __unset 方法
在上面的例子中,我们定义了一个 Person 类,并在该类中实现了 isset 和 unset 方法。
在新建一个 Person 实例后,我们尝试访问 $person->age 属性,由于该属性不存在,因此会触发 __isset 方法,返回 true。
在访问 $person->height 属性时,由于该属性也不存在,因此没有触发 __isset 方法,返回 false。
在删除 $person->name 属性时,由于该属性存在,因此触发了 __unset 方法,并将该属性值设置为空。