PHP 魔术方法__set__get__unset__isset使用

2013-12-27 19:56:34


魔术方法: 
是指某些情况下,会自动调用的方法,称为魔术方法 
PHP面向对象中,提供了这几个魔术方法, 
他们的特点 都是以双下划线__开头的 
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state() 和 __clone()  
__construct :构造方法 
__destruct  :析构方法 
__clone()   :克隆方法,当对象被克隆时,将会自动调用 

class Human { 
    public $age = 22; 
    public function __clone() { 
        echo '有人克隆我!假冒'; 
    } 

$lisi = new Human(); 
$zhangsan = clone $lisi;

__get的作用  
当我们调用一个权限上不允许调用的属性,和不存在的属性时, 
__get魔术方法会自动调用, 
并且自动传参,参数值是属性名. 


__set的作用 
当为无权操作的属性赋值时, 
或不存在的属性赋值时, 
__set()自动调用 
且自动传2个参数 属性 属性值 

__isset() 方法, 
当 用isset() 判断对象不可见的属性时(protected/private/不存在的属性) 
会引发 __isset()来执行 

__unset()方法 
当 用unset 销毁对象的不可见属性时, 
会引发 __unset(); 

   PHP 魔术方法__set__get__unset__isset使用

为您推荐