PHP面向對象中的魔術方法

__construct()  實例化對象時被調用,  當__construct和以類名爲函數名的函數同時存在時,__construct將被調用,另一個不被調用。

__call();

          1,在調用對象中不存在的方法時,__call()魔術方法會自動調用

          2,處理一些不存在方法的錯誤調用。

          3,這個方法需要兩個參數。

              function __call($methodName,$args){

 

              }

 

  __toString();

          1,用來快速讀取對象用字符串表示的最便捷方法。

          2,直接輸出對象的引用時自動調用。

          3,該方法必須返回一個字符串。

 

   __clone();

          1,複製(克隆)對象使用clone處理---------->$p1 = clone $object。

          2,__clone()是在克隆對象的時候自動調用。

          3,只要一個對象一誕生,就要有初始化的動作。

          4,和構造方法__construct()相似,它是爲克隆出來的副本對象初始化。

          5,在__clone()方法中$this關鍵字代表的是副本對象。($that代表原本對象。)

 

__autoload();

          1,其他的魔術方法都是在類中添加起作用的,這是唯一一個不在類中添加的方法。

          2,在類外部添加的方法,可以自動加載類!

          3,只要在頁面中使用到一個類,就會自動將類名傳給__autoload(類名參數)類名參數。

 

          對象串行化(序列化):將一個對象轉爲二進制串。

                             1,將對象長時間存儲在數據庫或文件時使用對象串行化。

                             2,將對象在多個PHP文件中傳輸時使用對象串行化。

          serialize():參數是一個對象,返回這個對象串行化後的二進制串。------------序列化

          unserialize():參數是對象的二進制串,返回來的就是原序列化之前的對象。----------------反序列化

__sleep();

          1,在對象序列化時自動調用的方法。

          2,可以將一個對象部分串行化。(只要這個方法中返回一個數組,數組中有幾個成員屬性,就序列化幾個屬性。如果不加這個方法,則所有成員都被序列化!)

 

__wakeup();

          1,在對象反序列化時自動調用的方法。

          2,可以將一個對象部分反串行化。(也是對象重新誕生的過程------>__construct(),__wakeup(),__clone())


發佈了38 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章