0、用單引號代替雙引號來包含字符串,這樣作會更快一些。由於PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,注意:只有echo能這麼 作,它是一種能夠把多個字符串看成參數的「函數」(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故把函數加上了雙引號)。
PS:在單引號中,PHP不會自動搜尋變量、轉義字符等,所以效率上快不少。而通常來講字符串是沒有變量的,因此使用雙引號會致使性能不佳。正則表達式
一、若是能將類的方法定義成static,就儘可能定義成static,它的速度會提高將近4倍。事實上,function、method、static method的速度不會有太大差別。
二、$row[’id’] 的速度是$row[id]的7倍,不太懂,貌似差別只有後者會先判斷id這個宏是否存在,若是不存在則自動轉變爲字符串。
三、echo 比 print 快,若是使用echo $str1.$str2 就會須要 PHP 引擎首先把全部的變量鏈接起來,而後在輸出,而echo $str1,$str2,PHP 引擎就會按照循序輸出他們
四、 在執行for循環以前肯定最大循環數,不要每循環一次都計算最大值,最好用foreach代替for,這個效率更高,若是考慮到 foreach($array as $var)每次拷貝的消耗,可使用foreach($array as &$var)這樣的引用。
五、註銷那些不用的變量尤爲是大數組,以便釋放內存,若是沒有記錯的話,unset($array)不會馬上釋放內存,但隨時釋放是個好習慣。
六、儘可能避免使用__get,__set,__autoload。
七、require_once和include_once須要判重,所以效率上要低,可是5.2版本後效率問題已經基本解決。
八、include文件時儘可能使用絕對路徑,由於它避免了PHP去include_path裏查找文件的速度,解析操做系統路徑所需的時間會更少。
九、若是你想知道腳本開始執行(譯註:即服務器端收到客戶端請求)的時刻,使用$_SERVER['REQUEST_TIME']要好於time()。
十、函數代替正則表達式完成相同功能。
十一、str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。
十二、若是一個字符串替換函數,可接受數組或字符做爲參數,而且參數長度不太長,那麼能夠考慮額外寫一段替換代碼,使得每次傳遞參數是一個字符,而不是隻寫一行代碼接受數組做爲查詢和替換的參數。
1三、使用選擇分支語句(譯註:即switch case)好於使用多個if,else if語句。
1四、用@屏蔽錯誤消息的作法很是低效,極其低效。
1五、打開apache的mod_deflate模塊,能夠提升網頁的瀏覽速度。apache