PHP中12個魔術方法


php中12個魔術方法

本文列舉了php面向對象當中12個魔術方法,並對此進行一一詳細介紹,希望對新手有所幫助。

1.構造方法: __construct()

參數:自定義

觸發時機:new的一瞬間自動調用

作用:初始化成員屬性

2.析構方法__destruct()

參數:無

觸發時機:在對象釋放的一瞬間自動調用

作用:做收尾工作,數據庫關閉連接等

3.__get()

參數:一個,成員屬性名稱

觸發時機:在類外部訪問私有的受保護的或者未定義的成員屬性時自動調用

作用:控制私有的受保護的未定義的成員屬性的訪問

4.__set()

參數:兩個,成員屬性的名稱和值

觸發時機:在類外部設置私有的受保護的未定義的成員屬性時自動調用

作用:對私有的受保護的未定義的成員屬性進行賦值控制

5.__isset()

參數:一個參數,成員屬性名稱

觸發時機:在類外部調用isset和empty方法驗證私有的受保護的未定義的成員屬性時自動調用

作用:對私有的受保護的未定義成員屬性進行isset和empty的判斷控制

6.__unset()

參數:一個參數,成員屬性名稱

觸發時機:在類外部使用unset方法對私有的受保護的成員屬性進行銷燬的一瞬間自動調用

作用:對私有的受保護的成員屬性進行unset銷燬控制

7.__clone()

參數:無

觸發時機:在類外部使用clone關鍵字對對象進行克隆時自動調用

作用:對克隆體進行標示

8.__toString()

參數:無

觸發時機:在類外部echo對象的時候自動調用

作用:快速輸出對象的內容

注意:本方法必須返回一個字符串類型的內容

9.__call()

參數:兩個參數,調用的不存在方法名稱,第二個參數爲方法的參數(數組)

觸發時機:使用對象調用一個不存在的方法自動調用

作用:屏蔽顯示的錯誤

10.__autoload()

參數:一個參數,new的類的名稱

觸發時機:當new一個找不到的類或者繼承的父類或者在方法體中new的找不到的類的時候自動調用

作用:自動加載找不到的類文件

注意:本方法是在類外部定義的

11.__sleep()

參數:無

觸發時機:當在類外部對對象進行串行化的一瞬間自動調用serialize()

作用:可以對串行化的成員屬性的選擇進行控制

注意:必須返回一個數組(元素:成員屬性名稱)

12.__wakeup()

參數:無

觸發時機:反串行化的一瞬間自動調用unserialize()

作用:在喚醒時對成員屬性進行控制

注意:在反串行化時必須有類在場

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章