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都不会被访问到。