這篇文章中的建議涵蓋了大部分PHP代碼性能方面的問題。如果你是做一些小網站或者小項目,那麼有理由忽略這些建議,但是當你為大量用戶提供長期穩定的服務的時候,就必須關注了。開發人員必須從項目一開始就考慮這些建議,它會極大的改善你的網站的性能。
在PHP中,通常有很多的方法可以來達到相同的目的,但是開發人員通常選擇他們最熟悉的用起來最舒服的一種方式,但是有些事必須注意的:
- echo比print要快很多。兩個方法都會在頁面上打印東西,不過echo不返回任何值,print會在成功或失敗的時候返回0或1。
- include_once比include更加耗時。因為它需要去檢查你要包含的class是否已經被包含進來。
- 對於長段落的字符串一定要使用單引號,而不是雙引號。因為雙引號會去搜索字符串中的變量。比如:echo ‘This is long string’.$name就比echo “This is long string $name”要快很多。
- 不要再循環中使用for($i=0;$i<count($names);$i++),因為這會在每次循環的時候都會去計算數組的長度,取而代之的是使用$size=count($names);for($i=0;$i<$size;$i++)。
- 如果能將函數定義為靜態的,那麼就不要定義成為成員函數,靜態函數比成員函數快33%。
- 如果你可以不通過正則表達式就能解決問題,那麼就別用正則。正則表達式比PHP原生的函數要慢一些。例如使用str_replace取代preg_replae。
- 盡量不要使用相對路徑來包含文件。在相對路徑中查找文件,會現在當前目錄中查找,然後依次再查找。這樣查找文件就很慢。最好是先定義WEB_ROOT這樣的常量,然後使用這個常量來包含文件。
- 全等符號===比相等==要快。而且if(1 == ’1′)會返回true,if(0 == ”)也會返回true,而當你使用全等符號的時候if(1 ===’1′)和if(0===”)都會返回false。所以當你在程序中需要檢測一些布爾變量的時候最好使用全等符號。
- 最好別用簡寫的<?而是使用<?PHP,因為這會在你將程序部署在其他服務器的時候更加容易出問題。
- 最好不要使用和依賴於register_global或者magic_quote,讀取和設置你的PHP.ini的時候也一定要小心。
這裡並沒有涵蓋所有的優化方面,RockUX會在後面的文章中講到。請多多關注。