<span style="font-family:KaiTi_GB2312;font-size:18px;"><?php // 重载 class Person{ //定义属性 public $name; private $age; //构造方法 public function __construct($name,$age){ $this->name =$name; $this->age =$age; } //获取魔术方法 # @param string $name public function __get($param){ // return $this->$param; #允许被访问的属性 $allow = array('age'); if(in_array($param, $allow)){ return $this->$param; } } //__set() 设置魔术方法 #@param string $name #param string $val public function __set($name,$val){ $allow = array('age','money'); if(in_array($name, $allow)){ $this->$name=$val; } } // __isset() 判定数据 public function __isset($name){ return isset($this->$name); } //__unset 销毁数据 public function __unset($name){ //建立unset列表 $allow =array('tail'); if(in_array($name,$allow)){ echo 'unset running'; unset($this->$name); } } } //实例化 $p = new Person('zp',21); $p->age = 200; echo $p->money = 200000000; $p->tail ="a"; var_dump(isset($p->name)); var_dump(isset($p->age)); var_dump(isset($money)); // var_dump(empty($tail)); unset($p->tail); // var_dump($tail); </span>
原文地址:http://blog.csdn.net/u010657348/article/details/44229395