首頁  >  文章  >  後端開發  >  PHP開發經驗總結

PHP開發經驗總結

WBOY
WBOY原創
2016-08-08 09:30:43768瀏覽

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迴圈前決定最大迴圈數,不要每迴圈一次都計算最大值 
 
5.注意include與require的區別 
在PHP變成中,include()與require()的功能相同,但在用法上卻有些不同,include()是有條件包含函數,而require()則是無條件包含函數。例如在下面的範例中,如果變數$somgthing為真,則會包含檔案somefile 
if($something){ 
    include(「somefile.txt」); 

但不管$something取何值,不管下面的程式碼將把文件somefile包含進文件裡: 
if($something){ 
    require(“somefile.txt”); 

6.做資料庫查詢作業時,應盡量避免使用語言來說,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

以上就介紹了PHP開發經驗總結,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn