PHP開發經驗總結
1.使用內嵌的HTML程式碼,而不是PHP的echo語句。
因為PHP是一門嵌入式Web程式語言,可以將HTML程式碼和PHP程式碼相互嵌入。但是很多程式設計師擔心在HTML程式碼中過多的使用””嵌入PHP程式碼會多次呼叫PHP直譯器,從而降低了PHP程式碼的執行速度,所以寧願使用PHP的echo語句來輸出HTML程式碼,而不直接使用HTML程式碼。但事實卻恰恰相反。每一個PHP頁面只呼叫一次PHP直譯器來解釋所有的PHP程式碼,所以,只在需要時才嵌入PHP程式碼,而大多數的時候直接使用HTML程式碼輸入結果,不但不會降低程式的執行速度,而且因為減少了對echo語句的解析,往往可以提高程式碼的執行速度。
2.儘量使用str-replace而不是ereg-replace
習慣使用Perl進行程式設計的程式設計師更加願意使用ereg_replace完成字串替換工作,因為在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的這段程式碼證明,使用str_replace 代替 ereg_replace將可以大大提高程式碼的執行速度。
3.注意字串的引用
PHP和其它很多程式語言一樣,可以使用雙引號(””)來引用字串,也可以使用單引號()。但是在PHP中,如果使用雙引號來引用字串,那麼PHP解析器將首先分析字串中有沒有對變數的引用,有變數的話,將對變數進行替換。如果是單引號,則沒有如此複雜——直接將單引號包含起來的所有字串直接顯示出來。顯然,在PHP程式設計中,如果使用單引號引用字串變數要比使用雙引號快速一些。
4.在執行for迴圈之前確定最大迴圈數,不要每迴圈一次都計算最大值
<!–p
//不要這樣做
for ($i=0;$i<=count($array);$i++){
…
}
//應該這樣做
$array_length = count($array);
for ($i=0;$i<=$array_length;$i++){
…
}
–>
5.注意include與require的區別
在PHP變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函式,而require()則是無條件包含函式。例如在下面的一個例子中,如果變數$somgthing為真,則將包含檔案somefile
if($something){
include(“somefile.txt”);
}
但不管$something取何值,下面的程式碼將把檔案somefile包含進檔案裡:
if($something){
require(“somefile.txt”);
}
6.做資料庫查詢操作時,應儘量避免聯合操作
比起其它的Web程式語言來說,PHP的資料庫功能十分強大。
但是在PHP中資料庫的執行仍然是一件十分費時費力的事情,所以,作為一個Web程式設計師,要儘量減少資料庫的查詢操作,同時應該為資料庫建立適當的索引。
另一件值得注意的事情是在用PHP運算元據庫時,儘可能不使用多個資料表的聯合操作,儘管聯合操作可以增強資料庫的查詢功能,但是卻大大增加了伺服器的負擔。
7.如果你想知道指令碼開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用$_SERVER[‘REQUEST_TIME’]要好過於用time()函式。
8.不一定必須要物件導向,物件導向是比較耗時的。有些簡單的操作還是過程的快。
9.$row[`id`]的速度是$row[id]的7倍
10.echo 比 print 快,並且使用echo的多重引數(譯註:指用逗號而不是句點)代替字串連線
比如echo $str1,$str2。
11.當if…else…巢狀比較多時,應選擇switch….case
12.將不用的mysql查詢結果要及時地釋放掉(mysql_free_result())
13.isset()和empty()的區別
兩者都是測試變數用的
但是isset()是測試變數是否被賦值,而empty()是測試一個已經被賦值的變數是否為空
如果一個變數沒被賦值就引用在php裡是被允許的,但會有notice提示
如果一個變數被賦空值,$foo=””或者$foo=0或者 $foo=false,那麼empty($foo)返回真,isset($foo)也返回真,就是說賦空值不會登出一個變數。
要登出一個變數,可以用 unset($foo)或者$foo=NULL
相關文章
- Android開發經驗總結Android
- iOS開發經驗總結iOS
- iOS開發經驗總結2iOS
- iOS開發經驗總結3iOS
- Java反射機制開發經驗總結Java反射
- 總結Django一些開發經驗Django
- 開發中的一些經驗總結
- 微信小程式開發BUG經驗總結微信小程式
- 一年Node.js開發開發經驗總結Node.js
- 2年開發,我總結了7條經驗!
- 工作經驗總結
- php開發常用函式總結PHP函式
- 經驗總結--我的小程式開發和進化之路
- 考試經驗總結
- 做題經驗總結
- 大資料開發工程師的兩年工作經驗總結大資料工程師
- 十年開發的程式設計師,總結出了這些開發經驗程式設計師
- 工作經驗日常總結===20241105
- IT職場管理經驗總結
- Flutter 介紹 & 經驗總結Flutter
- mysql索引使用經驗總結MySql索引
- Elasticsearch 實戰經驗總結Elasticsearch
- Git Flow 使用經驗總結Git
- 日常專案經驗總結
- 詭異的druid連結池連結斷開故障經驗總結UI
- php 驗證格式的函式總結PHP函式
- 我的刷題經驗總結
- 計算機考研經驗總結計算機
- vue移動端經驗總結Vue
- 《軟體專案經驗總結》
- 線上寫壓測經驗總結
- AOT使用經驗總結m8
- Windows RocketMQ使用方法經驗總結WindowsMQ
- 使用 Golang 寫爬蟲經驗總結Golang爬蟲
- 經驗總結1—資料核對
- JMeter測試WebSocket的經驗總結JMeterWeb
- 他在BAT等大廠研發10年,總結了12條開發經驗給你BAT
- 8 年產品經驗,我總結了這些持續高效研發實踐經驗 · 研發篇
- 一個PHP開發者總結的九條建議PHP