想必現(xiàn)在有很多小伙伴對于PHP 魔術(shù)方法有哪些,作用是什么方面的知識都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于PHP 魔術(shù)方法有哪些,作用是什么方面的知識分享給大家,希望大家會喜歡哦。
__construct()構(gòu)造函數(shù)是目前為止最經(jīng)常使用的函數(shù)。在創(chuàng)建對象時,可以在構(gòu)造函數(shù)中做一些初始化工作??梢詾闃?gòu)造函數(shù)定義任意多個參數(shù),只要在實例化時傳入對應(yīng)個數(shù)的參數(shù)即可。構(gòu)造函數(shù)中出現(xiàn)的任何異常都會阻止對象的創(chuàng)建。
__desctruct()析構(gòu)函數(shù)通常在對象被銷毀時調(diào)用,析構(gòu)函數(shù)不接收任何參數(shù)。經(jīng)常在析構(gòu)函數(shù)中執(zhí)行一些清理工作,比如關(guān)閉數(shù)據(jù)庫連接等。
__get()在我們嘗試訪問一個不存在的屬性時會被調(diào)用。它接收一個參數(shù),該參數(shù)表示訪問屬性的名字,并且將該屬性的值返回
__set()魔術(shù)方法在我們嘗試修改一個不可訪問的屬性時會被調(diào)用,它接收兩個參數(shù),一個表示屬性的名字,一個表示屬性的值。
__isset()魔術(shù)方法在對一個不可訪問的屬性調(diào)用 isset()方法時會被調(diào)用,它接收一個參數(shù),表示屬性的名字。它應(yīng)該返回一個布爾值,用來表示該屬性是否存在。
__unset()魔術(shù)方法在調(diào)用 unset()函數(shù)銷毀一個不能訪問的屬性時會被調(diào)用,它接收一個參數(shù),表述屬性的名字。
__toString()在我們將對象當(dāng)作字符串一樣使用時會被調(diào)用,它不接收任何參數(shù)。該方法允許我們定義對象的表現(xiàn)形式。
__clone()魔術(shù)方法__clone()可以解決上面的問題。當(dāng)對一個對象使用 clone 關(guān)鍵字時,該魔術(shù)方法會被調(diào)用。
__sleep()魔術(shù)方法__sleep()在對一個對象序列化時(調(diào)用 serialize())會被調(diào)用。它不接收任何參數(shù),而且應(yīng)該返回一個包含所有應(yīng)該被序列化的屬性的數(shù)組。在該魔術(shù)方法中,也可以執(zhí)行一些其他操作。有一點要注意的是,不要再該函數(shù)中進(jìn)行任何的析構(gòu)操作,因為這可能會影響正在運行的對象
__wakeup()魔術(shù)方法__wakeup()在對存儲的對象反序列化時會被調(diào)用。它不接收任何參數(shù),也沒有任何返回值??梢杂盟鼇硖幚碓谛蛄谢瘯r丟失的數(shù)據(jù)庫連接或資源
__call()魔術(shù)方法__call()在調(diào)用不存在或不可訪問的方法時會被調(diào)用。它接收兩個參數(shù),一個是調(diào)用的方法的名字,一個是包含函數(shù)參數(shù)的數(shù)組。我們可以使用這種方法調(diào)用子對象中得同名函數(shù)
本文到此結(jié)束,希望對大家有所幫助。