摘要:眾多魔術(shù)方法中唯一一個(gè)不在類中使用的方法,該方法可以自動加載包含文件這樣執(zhí)行文件就可以自動包含以上三個(gè)文件了。打印調(diào)試信息,該方法只在以上版本可用還有很多的魔術(shù)方法筆者還沒介紹,讀者如果感興趣,可自行查閱手冊進(jìn)行學(xué)習(xí)在線手冊
自從php進(jìn)入5.0版本以來,php以完全支持面向?qū)ο缶幊?,使其開發(fā)效率愈加高效。同時(shí)其也引入了新的概念->魔術(shù)方法,以__開頭的預(yù)定義方法,幫助我們更加高效進(jìn)行程序地開發(fā).
1.__construct()
構(gòu)造方法,對象實(shí)例化時(shí),讓函數(shù)初始化。
2.__destruct()
析構(gòu)函數(shù),對象釋放之前最后調(diào)用地函數(shù),釋放掉保存在對內(nèi)存中的數(shù)據(jù)。
3.__set()
當(dāng)對象中的成員為私有屬性時(shí),通過該方法可以直接設(shè)置成員屬性的值
4.__get()
當(dāng)對象的成員為私有屬性時(shí),通過該方法可以讀取成員屬性的值
5.__isset()
查看對象中私有屬性是否存在
6.__unset()
直接刪除對象中的私有屬性
7.__call()
當(dāng)對象調(diào)用類中不存在的方法時(shí),可以通過類中的__call()方法來進(jìn)行錯(cuò)誤處理,防止程序報(bào)錯(cuò)終止
8.__toString()
當(dāng)對對象進(jìn)行輸出時(shí),調(diào)用該方法。比如echo $obj;否則,發(fā)生致命錯(cuò)誤
9.__clone()
當(dāng)我們克隆一個(gè)對象時(shí),可以通過__clone()方法中的$this關(guān)鍵字對被克隆出來的對象進(jìn)行初始化,而$that關(guān)鍵字可以對原對象進(jìn)行操作。
10.__autoload()
眾多魔術(shù)方法中唯一一個(gè)不在類中使用的方法,該方法可以自動加載包含文件
for example
one.class.php two.class.php three.class.php test.php 這樣執(zhí)行test.php文件就可以自動包含以上三個(gè)文件了。
11.__sleep()
當(dāng)我們對某個(gè)對象進(jìn)行序列化時(shí)(serialize()),自動調(diào)用該函數(shù),在該方法中返回一個(gè)數(shù)組,數(shù)組有幾個(gè)成員,就序列化該幾個(gè)成員。
12.__wakeup()
當(dāng)我們對某個(gè)二進(jìn)制文件進(jìn)行反序列化時(shí)(unserialize()),自動調(diào)用該函數(shù),自動調(diào)用該函數(shù),對反序列化生成的對象進(jìn)行初始化。
13.__debuginfo()
打印調(diào)試信息,該方法只在php5.6以上版本可用
還有很多的魔術(shù)方法筆者還沒介紹,讀者如果感興趣,可自行查閱php手冊進(jìn)行學(xué)習(xí)
php在線手冊
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26147.html
摘要:重載在中就大量應(yīng)用了重載相關(guān)知識,如在中就用到了方法重載知識使用魔術(shù)方法來動態(tài)創(chuàng)建類中未定義或不可見的靜態(tài)方法。中通過引入魔術(shù)方法來實(shí)現(xiàn)動態(tài)的創(chuàng)建類屬性和方法,包括屬性重載的魔術(shù)方法和方法重載的魔術(shù)方法。 說明:本文主要講述PHP中重載概念,由于Laravel框架中經(jīng)常使用這塊知識點(diǎn),并且PHP的重載概念又與其他OOP語言如JAVA中重載概念不一樣,故復(fù)習(xí)并記錄相關(guān)知識點(diǎn)。同時(shí),作者會...
摘要:結(jié)語這里主要測試了,,,,這五個(gè)常用的且可有其他實(shí)現(xiàn)方式代替的魔法函數(shù)。里使用魔術(shù)方法的性能還是存在問題嗎答在中使用與不使用魔術(shù)方法之間的差異和在中近乎一致。 前言 曾經(jīng)記得鳥哥Laruence提過不建議使用魔術(shù)方法,自此之后一旦涉及使用魔術(shù)方法的地方,我都會下意識的想一下,這樣寫真的好嗎?由于這一到兩年來一直忙于工作和學(xué)習(xí)新的知識,所以在這道坎兒上一直沒有做深入的探索一直恍恍惚惚過去...
摘要:將所有以兩個(gè)下劃線開頭的類方法保留為魔術(shù)方法。和當(dāng)對象被當(dāng)做使用時(shí),這個(gè)方法會被自動調(diào)用。此方法必須返回一個(gè)字符串當(dāng)對象被當(dāng)成方法調(diào)用時(shí),這個(gè)方法會被自動調(diào)用。參數(shù)是一個(gè)枚舉數(shù)組,包含著要傳遞給方法的參數(shù)。函數(shù)把數(shù)組元素組合為一個(gè)字符串。 PHP 將所有以 _ _(兩個(gè)下劃線)開頭的類方法保留為魔術(shù)方法。 __toString() 和__invoke() public stri...
摘要:魔術(shù)方法構(gòu)造函數(shù)允行開發(fā)者在一個(gè)類中定義一個(gè)方法作為構(gòu)造函數(shù)。如果子類沒有定義構(gòu)造函數(shù)則會如同一個(gè)普通的類方法一樣從父類繼承假如沒有被定義為的話。和函數(shù)會檢查類中是否存在一個(gè)魔術(shù)方法。魔術(shù)常量魔法方法 PHP - 魔術(shù)常量 __LINE__ 文件中的當(dāng)前行號 __FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。 __DIR__ 文件所在的目錄。如果用在...
摘要:魔術(shù)方法知識點(diǎn)整理代碼使用語法編寫一構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時(shí)先調(diào)用此方法,所以非常適合在使用對象之前做一些初始化工作。在析構(gòu)函數(shù)中調(diào)用將會中止其余關(guān)閉操作的運(yùn)行。析構(gòu)函數(shù)中拋異常會導(dǎo)致致命錯(cuò)誤。 PHP魔術(shù)方法知識點(diǎn)整理 代碼使用PHP7.2語法編寫 一、構(gòu)造函數(shù)和析構(gòu)函數(shù) __construct() 構(gòu)造函數(shù) __construct ([ mi...
閱讀 3672·2021-09-07 09:59
閱讀 728·2019-08-29 15:12
閱讀 814·2019-08-29 11:14
閱讀 1321·2019-08-26 13:27
閱讀 2674·2019-08-26 10:38
閱讀 3143·2019-08-23 18:07
閱讀 1284·2019-08-23 14:40
閱讀 1934·2019-08-23 12:38