|
這篇文章中的建議涵蓋了大部分php代碼性能方面的問題。如果你是做一些小網(wǎng)站或者小項(xiàng)目,那么有理由忽略這些建議,但是當(dāng)你為大量用戶提供長期穩(wěn)定的服務(wù)的時(shí)候,就必須關(guān)注了。開發(fā)人員必須從項(xiàng)目一開始就考慮這些建議,它會(huì)極大的改善你的網(wǎng)站的性能。
在php中,通常有很多的方法可以來達(dá)到相同的目的,但是開發(fā)人員通常選擇他們最熟悉的用起來最舒服的一種方式,但是有些事必須注意的:
- echo比print要快很多。兩個(gè)方法都會(huì)在頁面上打印東西,不過echo不返回任何值,print會(huì)在成功或失敗的時(shí)候返回0或1。
- include_once比include更加耗時(shí)。因?yàn)樗枰z查你要包含的class是否已經(jīng)被包含進(jìn)來。
- 對(duì)于長段落的字符串一定要使用單引號(hào),而不是雙引號(hào)。因?yàn)殡p引號(hào)會(huì)去搜索字符串中的變量。比如:echo This is long string.$name就比echo This is long string $name要快很多。
- 不要再循環(huán)中使用for($i=0;$icount($names);$i++),因?yàn)檫@會(huì)在每次循環(huán)的時(shí)候都會(huì)去計(jì)算數(shù)組的長度,取而代之的是使用$size=count($names);for($i=0;$i$size;$i++)。
- 如果能將函數(shù)定義為靜態(tài)的,那么就不要定義成為成員函數(shù),靜態(tài)函數(shù)比成員函數(shù)快33%。
- 如果你可以不通過正則表達(dá)式就能解決問題,那么就別用正則。正則表達(dá)式比php原生的函數(shù)要慢一些。例如使用str_replace取代preg_replae。
- 盡量不要使用相對(duì)路徑來包含文件。在相對(duì)路徑中查找文件,會(huì)現(xiàn)在當(dāng)前目錄中查找,然后依次再查找。這樣查找文件就很慢。最好是先定義WEB_ROOT這樣的常量,然后使用這個(gè)常量來包含文件。
- 全等符號(hào)===比相等==要快。而且if(1 == 1)會(huì)返回true,if(0 == )也會(huì)返回true,而當(dāng)你使用全等符號(hào)的時(shí)候if(1 ===1)和if(0===)都會(huì)返回false。所以當(dāng)你在程序中需要檢測一些布爾變量的時(shí)候最好使用全等符號(hào)。
- 最好別用簡寫的?而是使用?php,因?yàn)檫@會(huì)在你將程序部署在其他服務(wù)器的時(shí)候更加容易出問題。
- 最好不要使用和依賴于register_global或者magic_quote,讀取和設(shè)置你的php.ini的時(shí)候也一定要小心。
這里并沒有涵蓋所有的優(yōu)化方面,在后面的文章中講到。請(qǐng)多多關(guān)注。
it知識(shí)庫:10條建議提高PHP代碼性能,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。