作爲最流行的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不會檢查所包含的函數或文件是否存在。php