在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
属性重载:当访问一个不存在或者权限不够的属性的时候,能够触发一系列的魔术方法,就叫做属性重载
__isset($name):当使用 isset()函数或者empty()函数 判断属性是否存在或者是否为空的时候会自动触发 <?php //属性重载 class Person{ //属性 public $name; private $age; //构造方法 public function __construct($name,$age) { $this->name = $name; $this->age = $age; } } //实例化 $person = new Person('罗纳尔多',35); //判断 var_dump(isset($person->name)); //true var_dump(isset($person->age)); //false var_dump(empty($person->name)); //false var_dump(empty($person->age)); //true 很显然,属性 age 是存在的,但是因为是私有的,所以访问不到,就判断isset的结果为false了,不符合逻辑
<?php //属性重载 class Person{ //属性 public $name; private $age; //构造方法 public function __construct($name,$age) { $this->name = $name; $this->age = $age; } //isset魔术方法 //需要一个参数知道要判断的属性的名字 public function __isset($name){ //新建一个允许判断的数据 //判断当前元素是否在允许判断的数组里 //如果允许,在内部判读,返回判断结果 //不允许,返回FALSE var_dump($name); return isset($this->$name);
|
2022-08-18
2022-07-22
2022-08-17
2022-11-06
2022-08-15
请发表评论