__get,__set 爲php的magic方法,在類中定義爲 public 類型。php
class UserModel { private $id; public $name; public function __get($property_name) { if(isset($this->$property_name)) { return($this->$property_name); }else { return(NULL); } } public function __set($property_name, $value) { $this->$property_name = $value; } } 定義: $user=new UserModel();
一、直接賦值,讀取private屬性,將會調用__set,__get方法this
echo $user->id;
二、爲對象設置匿名屬性。對象
echo $user->r ; // 觸發 __get,第二次讀取將不會觸發__get方法 $user->r ='rhythmk' ; // 觸發 __set,第二次賦值將不會觸發__set方法
注意:
當對象的屬性 若是 isset(對象->屬性) == true, 將不會觸發 __set,__get 方法。 blog