__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())