這篇文章主要介紹了php魔法函數與魔法常數的相關知識介紹,需要的朋友可以參考下
php 魔術函數
1。 __construct()
實例化物件時被調用,
當__construct和以類別名為函數名的函數同時存在時,__construct將被調用,另一個不被調用。
2。 __destruct()
當刪除一個物件或物件操作終止時被呼叫。
3。 __call()
物件呼叫某個方法,
若方法存在,則直接呼叫;
若不存在,則會去呼叫__call函數。
4。 __get()
讀取一個物件的屬性時,
若屬性存在,則直接傳回屬性值;
若不存在,則會呼叫__get函數。
5。 __set()
設定一個物件的屬性時,
若屬性存在,則直接賦值;
若不存在,則會呼叫__set函數。
6。 __toString()
列印一個物件的時被呼叫。如echo $obj;或print $obj;
7。 __clone()
克隆物件時被呼叫。如:$t=new Test();$t1=clone $t;
8。 __sleep()
serialize之前被呼叫。若物件比較大,想刪減一點東東再序列化,可考慮此函數。
9。 __wakeup()
unserialize時被調用,做些物件的初始化工作。
10。 __isset()
偵測一個物件的屬性是否存在時被呼叫。如:isset($c->name)。
11。 __unset()
unset一個物件的屬性時被呼叫。如:unset($c->name)。
12。 __set_state()
呼叫var_export時,被呼叫。用__set_state的回傳值做為var_export的回傳值。
13。 __autoload()
當實例化一個物件時,如果對應的類別不存在,則該方法被呼叫。
php 魔術常數
1。 __LINE__
傳回檔案中的目前行號。
2。 __FILE__
傳回檔案的完整路徑和檔案名稱。如果用在包含檔案中,則傳回包含檔案名稱。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。
3。 __FUNCTION__
傳回函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常數傳回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
4。 __CLASS__
傳回類別的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常數傳回該類別被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
5。 __METHOD__
傳回類別的方法名稱(PHP 5.0.0 新加)。傳回該方法被定義時的名字(區分大小寫)。
(1)初識魔術方法
Php5.0發布以來為我們提供了很多面向對象的特性,尤其是為我們提供了很多易用的魔術方法,這些魔術方法可以讓我們簡化我們的編碼,更好的設計我們的系統。今天我們就來認識下php5.0提供給我們的魔術方法。
php使用魔法函數和不使用魔法函數比較
/** * use magic 0.31868386268616s * not use magic 0.11876797676086s */ class Test { private $varstr = "123"; function __get($name) { return $this->varstr; } } function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); $i = 0; while ($i<100000) { $i++; $t = new Test(); $t->varstr; } $time_end = microtime_float(); $time = $time_end - $time_start; echo "Did nothing in $time seconds\n";
相關推薦:
#
以上是php魔法函數與魔法常數使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你應該關心DependencyInjection(DI),因為它能讓你的代碼更清晰、更易維護。 1)DI通過解耦類,使其更模塊化,2)提高了測試的便捷性和代碼的靈活性,3)使用DI容器可以管理複雜的依賴關係,但要注意性能影響和循環依賴問題,4)最佳實踐是依賴於抽象接口,實現鬆散耦合。

是的,優化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)優化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,並避免使用

theKeyStrategiestosigantificallyBoostPhpaPplicationPerformenCeare:1)UseOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)優化AtabaseInteractionswithPreparedStateTementStatementStatementAndProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境