新聞資訊

PHP代碼優化(huà)的(de)建議(yì)

1、當你(nǐ)需要(yào)時(shí),你(nǐ)總能(néng)把代碼分(fēn)解成方法。

2、盡量采用(yòng)大(dà)量的(de)PHP內(nèi)置函數(shù)。

3、如(rú)果在代碼中存在大(dà)量耗時(shí)的(de)函數(shù),你(nǐ)可(kě)以考慮用(yòng)C擴展的(de)方式實現(xiàn®)它們。

4、在執行(xíng)for循環之前确定最大(dà)循環數(shù),不(bù)要(yào)每循環一(yī)次都(dōu)計(jì)算(suàn)最大(dà)值,最好(hǎo)運λ用(yòng)foreach代替。

5、注銷那(nà)些(xiē)不(bù)用(yòng)的(de)變量尤其是(shì)大(dà)數(shù)組,以便₽釋放(fàng)內(nèi)存。

6、盡量避免使用(yòng)__get,__set,__autoload。

7、require_once()代價昂貴。

8、include文(wén)件(jiàn)時(shí)盡量使用(yòng)絕對(duì)路(lù)徑,因為(wèi)它避免了(le)PHP去(qù)include_path裡(βlǐ)查找文(wén)件(jiàn)的(de)速度,解析操作(zuò)系統路(lù)徑所需的(de)時(shí)間(jiān)會(huì)更少(shǎo)。

9、如(rú)果你(nǐ)想知(zhī)道(dào)腳本開(kāi)始執行(xíng)(譯注:即服務✔器(qì)端收到(dào)客戶端請(qǐng)求)的(de)時(shí)刻,使用(yòng)$_SERVER[‘REQUEST_TIME']要(yào)好(hǎo)于 time()。

10、函數(shù)代替正則表達式完成相(xiàng)同功能(néng)。

11、str_replace函數(shù)比preg_replace函數(shù)快(kuài),但(dàn)st​rtr函數(shù)的(de)效率是(shì)str_replace函數(shù)的(de)四倍。

12、如(rú)果一(yī)個(gè)字符串替換函數(shù),可(kě)接受數(shù)組或字符作(zuò)為(wèi)參數(shù),并且參數(shù)長(cháng)度不(bù)太長≤(cháng),那(nà)麽可(kě)以考慮額外(wài)寫一(yī)段替換代碼,使得(de)每次傳遞參數(shù)是(shì)一(y←ī)個(gè)字符,而不(bù)是(shì)隻寫一(yī)行(xíng)代碼接受數(shù)組作(zuò)為(wèi)查詢和(hé)替換的(de)參數(s​hù)。

13、使用(yòng)選擇分(fēn)支語句(譯注:即switch case)好(hǎo)于使用(yòng)多(duō)個(gè)if,else if語句φ。

14、用(yòng)@屏蔽錯(cuò)誤消息的(de)做(zuò)法非常低(dī)效,極其低(dī)效♣。

15、打開(kāi)apache的(de)mod_deflate模塊,可(kě)以提高(gāo)網頁的(de)浏覽速度。

16、數(shù)據庫連接當使用(yòng)完畢時(shí)應關掉,不(bù)要(yào)用(yòng)長(cháng)連接。

17、錯(cuò)誤消息代價昂貴。

18、在方法中遞增局部變量,速度是(shì)最快(kuài)的(de)。幾乎與在函數(shù)中調用(yòng)局部變量γ的(de)速度相(xiàng)當。

19、遞增一(yī)個(gè)全局變量要(yào)比遞增一(yī)個(gè)局部變量慢(màn)2倍。

20、遞增一(yī)個(gè)對(duì)象屬性(如(rú):$this->prop++)要(yào)比遞增一(yī)個(gè)局部變量慢(màn)3倍。

21、遞增一(yī)個(gè)未預定義的(de)局部變量要(yào)比遞增一(yī)個(gè)預定義的(de)局部變量慢(màn)9至10倍。 合肥網絡建設公司

22、僅定義一(yī)個(gè)局部變量而沒在函數(shù)中調用(yòng)它,同樣會(huì)減慢(màn)速度(其程度相(xiàng)當于遞增一(yī)個(gè)局部變量)→。PHP大(dà)概會(huì)檢查看(kàn)是(shì)否存在全局變量。

23、方法調用(yòng)看(kàn)來(lái)與類中定義的(de)方法的(de)數(shù)量無關γ,因為(wèi)我(在測試方法之前和(hé)之後都(dōu))添加了(le)10個(gè)方法,但(dàn)性能(né×ng)上(shàng)沒有(yǒu)變化(huà)。

24、派生(shēng)類中的(de)方法運行(xíng)起來(lái)要(yào)快(kuài)于在基類中定義的(de)同樣的(™de)方法。

25、調用(yòng)帶有(yǒu)一(yī)個(gè)參數(shù)的(de)空(kōng)函數(shù),其花(huā)費±(fèi)的(de)時(shí)間(jiān)相(xiàng)當于執行(xíng)7至8次的(de)局部變量遞增操作(zuò)。類→似的(de)方法調用(yòng)所花(huā)費(fèi)的(de)時(shí)間(jiān)接近(jìn)于15↔次的(de)局部變量遞增操作(zuò)。

26、Apache解析一(yī)個(gè)PHP腳本的(de)時(shí)間(jiān)要(yào)比解析一(yī)個(×gè)靜(jìng)态HTML頁面慢(màn)2至10倍。盡量多(duō)用(yòng)靜(jìng)态HTML頁面,少(shǎo)用(yòng)腳本。