英文版權歸Reinhold Weber所有,中譯文作者yangyang(aka davidkoree)。 雙語版可用於非商業傳播,但須註明英文版作者、版權信息,以及中譯文作者。 翻譯水平有限,請廣大PHPer指正。
1.如果一個方法可靜態化,就對它做靜態聲明。 速率可提升至4倍。
2.echo比print快。
錯誤:根據php所在服務器環境的不同,某些情況下echo會比print()慢。 這裡有一篇echo和print()對比的帖子,對echo和print()的速度進行了測試:http://www.learnphponline.com/php-basics/php-echo-vs-print 。
3.使用echo的多重參數(譯註:指用逗號而不是句點)代替字符串連接。
錯誤:基準測試證明這又是一條與事實完全相反的建議。 php引擎處理以點號連接(或者使用雙引號)傳遞給echo的變量實際上是更快的。
4.在執行for循環之前確定最大循環數,不要每循環一次都計算最大值。
5.註銷那些不用的變量尤其是大數組,以便釋放內存。
6.盡量避免使用__get,__set,__autoload。
7.require_once()代價昂貴。
8.在包含文件時使用完整路徑,解析操作系統路徑所需的時間會更少。
9.如果你想知道腳本開始執行(譯註:即服務器端收到客戶端請求)的時刻,使用$_SERVER['REQUEST_TIME']要好於time()。
10.函數代替正則表達式完成相同功能。
11.str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。
12.如果一個字符串替換函數,可接受數組或字符作為參數,並且參數長度不太長,那麼可以考慮額外寫一段替換代碼,使得每次傳遞參數是一個字符,而不是只寫一行代碼接受數組作為查詢和替換的參數。