PHP 让__get方法重新执行

<?php
class A {

public function __get($p) {
	echo "getting $p\r\n";
	if(isset($this->$p)) {
		return $this->$p;
	}

	if($p == 'p1') {
		$this->$p = 456;
	}
	return $this->$p;
	}

}


$a = new A();
var_dump($a->p1);
//$a->p1 = null; //重新获取$a->$p1时,不会触发__get!!
unset($a->p1);//重新获取$a->$p1时,会触发__get
var_dump($a->p1);

  

posted on 2015-12-25 15:32  yangyh  阅读(501)  评论(0编辑  收藏  举报