__get,__set

__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

本站公眾號
   歡迎關注本站公眾號,獲取更多信息