为什么我销毁属性的时候不会重新检测一遍存不存在呢?
<?php
class Person
{
public $name = "王枫";
protected $age = "18";
public function __get($n)
{
echo "触发了不可访问的属性".$n;
}
public function __set($a, $b)
{
$this->$a = $b;
echo "触发了不可访问的属性".$a."赋值为了".$b;
}
public function __isset($n)
{
echo "判断一个不可访问的属性是否存在".$n;
}
public function __unset($n)
{
echo "销毁一个不可访问的属性".$n;
}
}
$xiao = new Person();
$xiao->age;
echo "<br>";
$xiao->age = "23";
echo "<br>";
empty($xiao->age);
echo "<br>";
unset($xiao->age);
正在回答
您好,销毁属性时使用的是unset,unset会触发__unset方法。当对不可访问属性调用 isset() 或 empty() 时,__isset()会被调用,因此销毁时是没有调用的。祝学习愉快!
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星