微信扫一扫打赏支持

php面向对象之__isset和__unset

php面向对象之__isset和__unset

一、简介

__isset和__unset都是对不可访问属性的操作,前者是检验的时候自动调用,后者是销毁的时候自动调用。

比如说在类外访问private的时候就会出现不可访问属性。

 

二、代码

 1 <?php
 2 /*
 3  * __isset:当外部调用isset()函数检测不可访问的属性或者不存在的属性时自动调用
 4    __unset:当在类外部调用unset销毁不可访问属性时自动调用
 5  * */
 6 class Person{
 7     private $userName;
 8     private $age;
 9     public $abc;
10     public function __construct($userName,$age){
11         $this->userName = $userName;
12         $this->age = $age;
13     }
14     public function __isset($name){
15         echo '当外部调用isset()函数检测不可访问的属性或者不存在的属性时自动调用';
16         return isset($name);
17     }
18     public function __unset($name){
19         echo '当在类外部调用unset销毁不可访问属性时自动调用';
20         unset($name);
21     }
22 }
23 $p = new Person('Clive',15);
24 var_dump(isset($p->abc));
25 echo '<hr/>';
26 unset($p->abc);

 调用public属性,也就是可访问属性的时候,__isset和__unset都不会被访问到。

 

posted @ 2018-03-11 23:10  范仁义  阅读(213)  评论(0编辑  收藏  举报