PHP提高編程效率的20個要點
用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則 不會,注意:只有echo能這么做,它是一種可以把多個字符串當(dāng)作參數(shù)的“函數(shù)”(譯注:PHP手冊中說echo是語言結(jié)構(gòu),不是真正的函數(shù),故把函數(shù)加 上了雙引號)。
1、如果能將類的方法定義成static
,就盡量定義成static
,它的速度會提升將近4倍。
2、$row['id']
的速度是$row[id]
的7倍。
3、echo
比 print
快,并且使用echo的多重參數(shù)(譯注:指用逗號而不是句點)代替字符串連接,比如echo $str1,$str2。
4、在執(zhí)行for
循環(huán)之前確定最大循環(huán)數(shù),不要每循環(huán)一次都計算最大值,最好運用foreach
代替。
5、注銷那些不用的變量尤其是大數(shù)組,以便釋放內(nèi)存。
6、盡量避免使用__get,__set
,__autoload
。
7、require_once()
代價昂貴。
8、include
文件時盡量使用絕對路徑,因為它避免了PHP去include_path
里查找文件的速度,解析操作系統(tǒng)路徑所需的時間會更少。
9、如果你想知道腳本開始執(zhí)行(譯注:即服務(wù)器端收到客戶端請求)的時刻,使用$_SERVER[‘REQUEST_TIME']
要好于time()
。
10、函數(shù)代替正則表達(dá)式完成相同功能。正則效率一般會低于函數(shù)
11、str_replace
函數(shù)比preg_replace
函數(shù)快,但strtr
函數(shù)的效率是str_replace
函數(shù)的四倍。
12、如果一個字符串替換函數(shù),可接受數(shù)組或字符作為參數(shù),并且參數(shù)長度不太長,那么可以考慮額外寫一段替換代碼,使得每次傳遞參數(shù)是一個字符,而不是只寫一行代碼接受數(shù)組作為查詢和替換的參數(shù)。
13、使用選擇分支語句(譯注:即switch case
)好于使用多個if,else if語句。
14、用@
屏蔽錯誤消息的做法非常低效,極其低效。
15、打開apache
的mod_deflate
模塊,可以提高網(wǎng)頁的瀏覽速度。
16、數(shù)據(jù)庫連接當(dāng)使用完畢時應(yīng)關(guān)掉,不要用長連接。
17、錯誤消息代價昂貴。
18、在方法中遞增局部變量,速度是最快的。幾乎與在函數(shù)中調(diào)用局部變量的速度相當(dāng)。
19、遞增一個全局變量要比遞增一個局部變量慢2倍。
20、遞增一個對象屬性(如:$this->prop++)要比遞增一個局部變量慢3倍。
21、遞增一個未預(yù)定義的局部變量要比遞增一個預(yù)定義的局部變量慢9至10倍。
22、僅定義一個局部變量而沒在函數(shù)中調(diào)用它,同樣會減慢速度(其程度相當(dāng)于遞增一個局部變量)。PHP大概會檢查看是否存在全局變量。
23、用單引號代替雙引號來包含字符串,
以上給大家列出了20幾條有關(guān)提高php編程效率的要點,希望對大家有所幫助。
相關(guān)文章
PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類完整實例
這篇文章主要介紹了PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類,結(jié)合完整實例形式詳細(xì)分析了php基于單例模式針對mongoDB數(shù)據(jù)庫連接、增刪改查、統(tǒng)計等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04php+mysql開發(fā)的最簡單在線題庫(在線做題系統(tǒng))完整案例
這篇文章主要介紹了php+mysql開發(fā)的最簡單在線題庫(在線做題系統(tǒng))案例,結(jié)合完整實例形式分析了PHP結(jié)合MySQL數(shù)據(jù)庫查詢、判斷實現(xiàn)的在線題庫功能相關(guān)操作技巧,需要的朋友可以參考下2019-03-03使用游標(biāo)進(jìn)行PHP SQLSRV查詢的方法與注意事項
在 PHP 中使用 SQLSRV 查詢時,如果查詢結(jié)果集較大,可以考慮使用游標(biāo)來提高查詢效率。使用游標(biāo)可以將查詢結(jié)果集分成多個小部分進(jìn)行處理,減輕服務(wù)器的負(fù)擔(dān),提高查詢性能2023-05-05php在多維數(shù)組中根據(jù)鍵名快速查詢其父鍵以及父鍵值的代碼
有一個多維數(shù)組,有多少維大家可以自定義。假如我們要在這個數(shù)組中找一個鍵為'subIndex'的值,我們可以用for、foreach等方法遍歷查找 反過來,假如我們?nèi)我饨o出一個或多個鍵,要求找出這個鍵的父級數(shù)組的鍵和值。這又如何實現(xiàn)?2011-05-05php 數(shù)組動態(tài)添加實現(xiàn)代碼(最土團(tuán)購系統(tǒng)的價格排序)
最近在實現(xiàn)最土團(tuán)購系統(tǒng)的價格排序功能,需要對$oc數(shù)組進(jìn)行擴(kuò)展,經(jīng)過測試用下面的方法即可。2011-12-12php實現(xiàn)Mongodb自定義方式生成自增ID的方法
這篇文章主要介紹了php實現(xiàn)Mongodb自定義方式生成自增ID的方法,實例分析了Mongodb自增字段的實現(xiàn)技巧與對應(yīng)php操作方法,需要的朋友可以參考下2015-03-03