天天看點

PHP常用的一些優化技巧

PHP常用的一些優化技巧

ecshop模闆 php 優化技巧 老楊ecshop ecshop二次開發 2013-03-29

PHP常用的一些優化技巧

做為最流行的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不會檢查所包含的函數或檔案是否存在。