PHP常用的一些優化技巧
-
ecshop模闆 php 優化技巧 老楊ecshop ecshop二次開發 2013-03-29
做為最流行的WEB語言, PHP他的突出優勢就是其速度與效率。如果遇到維護原有效率不高的腳本,或者伺服器負載較大,以及網絡帶寬不高等多種影響系統性能的瓶頸時,就需要我們對系統的内部環境經行調優。老楊ecshop二次開發
一:PHP腳本優化
我下面說的幾條PHP腳本級優化,你可以在優化時用到它們,這些技巧并不能讓PHP運作速度變的更快,而隻能使代碼稍稍優化一點兒。最重要的是讓你了解PHP内在的運作原理。
例子一:
在程式中使用count($array)作為條件循環時的耗時操作。
$birds = array("鹦鹉","麻雀","孔雀","天鵝");
for($i = 0;$i<=count($birds);i++){
............
}
上面的代碼每次處理都要執行一遍count()函數,計算數組的長度。
下面我們重寫代碼
$count = count($birds);
for($i = 0;$i<=$count;i++){
例子二:
對字元操作時,檢查某個字元串是否超出長度。我們很容易的想到的是strlen()函數,但是strlen()函數在使用的時候需要經行幾步的操作,如全部小寫化、函數查找。
在這樣的場合,我們可以使用isset()來代替,以提高代碼速度。
if(strlen($var) < 5) { echo "this is test";}
重寫後的代碼
if(!isset($var{5})) { echo "this is test";}
調用isset()比strlen()函數要快,因為isset()是一種文法結果,而不是函數。在執行的時候不需要PHP引擎對strlen()函數進行小寫換換和内部進行函數查找。
例子三:
使用遞增或遞減時,$i++比++$i稍慢。這點和其他的語言相比,在php中是個特例,不要在C++和java中也使用這個技巧。在php中,$i++比++$i慢的原因是$i++進行了4次計算,而++$i
進行了3次計算。$i++是先申請一個臨時變量,然後增加。++$i直接使用原來變量。
例子四
字元串的輸出
echo 與 print
print要比echo稍慢一些。理由很簡單,不管是否需要,print都會傳回一個狀态辨別,而echo隻是簡單的輸出,不做任何其他的事情。
printf() 這個函數會很慢,建議萬不得已的時候不要使用。printf()是在需要進行參數格式化的情況下使用的。
例子五
require 比 require_once 快
從PHP 5.2開始 require 将會比 require_once 快,因為require不會檢查所包含的函數或檔案是否存在。