PHP常用魔術方法講解

默認不存在,但是如果用戶定義了相關的方法,則在相應的情況發生時會自動執行的方法,稱之爲魔術方法。下面我們就給大家詳細介紹一下吧!

PHP常用魔術方法講解

 1,__constuct()構造函數

通常實例化完一個對象之後,都要對該對象的屬性進行初始化!在實例化一個對象的時候,PHP系統會自動的調用一個名字叫作__construct()的方法,我們把這個方法叫作“構造方法”!

其中,構造方法可以沒有參數!

stu_name = $name; $this->stu_age = $age; } }//實例化stu對象$stu = new Stu('孫悟空','500');

  2.__destruct()析構方法

與構造方法是一對,構造方法是在一個對象“出生”的時候由系統自動調用的,而析構方法是在一個對象“消失”的時候由系統自動調用的.!

析構方法的名字叫__destruct();注意裏面不能有任何的參數!

注意:析構方法是在對象銷燬之前調用的!

作用:

析構方法的作用一般是用來釋放該對象所佔用的額外的資源,而不是銷燬該對象本身!

 3,__clone()克隆

觸發時機:是在克隆一個對象的時候,對新對象進行初始化的工作

//克隆方法在克隆對象的時候對新對象的初始化工作 public function __clone(){ $this->is_clone=true;}

思考:

克隆出來的對象還是不是Student類中的一個實例呢?

我們可以利用instanceof運算符來進行判斷!

instanceof就是用來判斷某個對象是否是某個類的一個實例!

需要兩個操作數,前面是一個對象變量,後面是一個類名!返回一個布爾值!

var_dump($stu instanceof Stu);

//返回bool(true)

  4.__autoload()自動加載類

當調用不存在的類的時候自動調用!

 5.__tostring()

當將對象當成字符串使用的時候自動調用

  6.__invoke()

當將對象當成函數使用的時候自動調用

 7,__set()

當對無法訪問的屬性賦值時自動調用(比如:類外調用私有屬性)

  8.__get()

當對獲取無法訪問的屬性值的時候自動調用

  9.__unset()

當銷燬無法訪問的屬性的時候自動調用

  10.__isset()

當判斷無法訪問的屬性是否存在的時候自動調用

  11.__call()

當調用無法訪問的普通方法時自動觸發

echo "error"; }}$stu = new Stu();//此時Stu類裏沒有show()方法,會觸發__call()函數$stu->show();

  12.__callststic()

當無法通過靜態方法訪問時自動觸發