10條PHP編程習(xí)慣
1、使用單引號(hào)括起來(lái)的字符串
當(dāng)使用雙引號(hào)來(lái)括字符串時(shí),PHP解釋器會(huì)對(duì)其進(jìn)行變量替換、轉(zhuǎn)義等操作,如 “\n”。如果只想輸出一個(gè)基本的字符串,用單引號(hào)會(huì)節(jié)省一些資源。當(dāng)然,如果需要進(jìn)行變量替換的,那就必須用雙引號(hào)了。
2、字符串的輸出
以下哪一條語(yǔ)句的運(yùn)行速度最快?
print “Hi my name is $a. I am $b”$$
echo “Hi my name is $a. I am $b”$$
echo “Hi my name is “.$a.”. I am “.$b;
echo “Hi my name is “,$a,”. I am “,$b;
echo ‘Hi my name is ‘,$a,’. I am ‘,$b;
最后一條的運(yùn)行速度是最快的。 print比echo要慢,在字符串中進(jìn)行變量替換時(shí)會(huì)慢,而連接字符串要比用逗號(hào)連接來(lái)得慢,最后一句則是第一個(gè)習(xí)慣的體現(xiàn)。所以,不在字符串中進(jìn)行變 量替換不僅會(huì)加快程序運(yùn)行速度,也會(huì)讓你的代碼在任何語(yǔ)法高亮顯示的編輯器中顯得更為易懂(變量會(huì)被高亮顯示出來(lái))。很少人知道echo的參數(shù)可以用逗號(hào) 連接,且速度會(huì)比字符串連接要來(lái)得快。最后再用上第一個(gè)習(xí)慣,那這條語(yǔ)句就非常好了。
3、在數(shù)組索引中使用單引號(hào)
正如你在上面的測(cè)試題中所看到的,$x[sales]從嚴(yán)格意義上來(lái)說(shuō)是錯(cuò)誤的,索引應(yīng)該被括起來(lái),即$x['sales']。這是因?yàn)镻HP會(huì)將 沒(méi)有括起來(lái)的索引辨認(rèn)為“裸”字符串,并把它解釋為一個(gè)常量。當(dāng)找不到該常量的定義時(shí),才將其解釋為一個(gè)字符串,所以這條語(yǔ)句才是可運(yùn)行的。把索引括起來(lái) 可以省去這部分工作,如果將來(lái)正好要用這一字符串定義常量時(shí)也就不會(huì)有錯(cuò)誤了。
4、不使用開(kāi)始標(biāo)志的縮寫(xiě)形式
你正在使用 這樣的符號(hào)嗎?“
5、盡量不要使用正則表達(dá)式
在進(jìn)行常規(guī)的字符串操作時(shí),盡可能不要去使用正則表達(dá)式(preg和ereg系列函數(shù))。str_replace函數(shù)要比preg_replace快得多,甚至 strtr函數(shù)也要比str_replace來(lái)得快。省去這些不必要的麻煩吧,你的老板會(huì)感謝你的。
6、不要在循環(huán)聲明中使用函數(shù)
這個(gè)問(wèn)題不單單出現(xiàn)在PHP中,你可以在其他語(yǔ)言的代碼中經(jīng)?吹剑
差:for($i=0;$i< count($array);$i++){…}
好:$count=count($array);for($i=0;$i& lt;$count;$i++){…}
如果在循環(huán)聲明中使用了 count函數(shù),那每次循環(huán)都會(huì)調(diào)用一次。如果循環(huán)次數(shù)很多,會(huì)浪費(fèi)非常多的時(shí)間。
7、不要使用 register_globals和magic quotes
老版本的PHP在安裝時(shí)會(huì)默認(rèn)打開(kāi)這兩個(gè)功能,這會(huì)引起安全漏洞、編程錯(cuò)誤及其他的問(wèn)題,如只有用戶(hù)輸入了數(shù)據(jù)時(shí)才會(huì)創(chuàng)建變量等。如今這兩個(gè)功 能都被舍棄了,每個(gè)程序員都應(yīng)該避免使用。
8、一定要對(duì)變量進(jìn)行初始化(這 里的“初始化”指的是“聲明”)
當(dāng)需要沒(méi)有初始化的變量,PHP解釋器會(huì)自動(dòng)創(chuàng)建一個(gè)變量,但依靠這個(gè)特性來(lái)編程并不是一 個(gè)好主意。這會(huì)造成程序的粗糙,或者使代碼變得另人迷惑,因?yàn)槟阈枰綄み@個(gè)變量是從哪里開(kāi)始被創(chuàng)建的。另外,對(duì)一個(gè)沒(méi)有初始化的變量進(jìn)行遞增操作要比初 始化過(guò)的來(lái)得慢。所以對(duì)變量進(jìn)行初始化會(huì)是個(gè)不錯(cuò)的主意。
9、對(duì)代碼進(jìn)行注釋
這個(gè)問(wèn)題已經(jīng)提過(guò)很多次了,但再多次也 不夠。我知道有些地方是不聘用不對(duì)代碼進(jìn)行注釋的程序員的。我在前一次工作面試后和副總、面試官一起瀏覽我寫(xiě)的代碼,當(dāng)他們對(duì)我所做的代碼注釋印象深刻, 還了解了一下我的這一習(xí)慣。一天之后,我得到了這個(gè)工作。
我知道有些自稱(chēng)為PHP大師的.人聲稱(chēng)自己的代碼寫(xiě)得很好,不需要添加什么注 釋。在我看來(lái),這些人都是垃圾。學(xué)一寫(xiě)注釋的規(guī)范和技巧,熟悉一下phpDocumentor或Doxygen之類(lèi)的注釋輔助軟件,都是值得的。
10、遵循一個(gè)編程規(guī)范
關(guān)于這一點(diǎn),是你需要在面試中詢(xún)問(wèn)你潛在的老板的,問(wèn)問(wèn)他們正在使用什么編程規(guī)范。PEAR?Zend?內(nèi)部規(guī)范? 要提及你正在使用的編程規(guī)范,不管是你自己創(chuàng)建的,還是目前普遍流行的一種。對(duì)于PHP這種松松垮垮的語(yǔ)言來(lái)說(shuō),如果沒(méi)有一個(gè)好的編程規(guī)范,那么那些代碼 就會(huì)看起來(lái)想一堆垃圾。發(fā)臭的,令人作嘔的垃圾。一些基本的規(guī)范包括空格規(guī)范、打括號(hào)匹配、命名風(fēng)格等。這對(duì)任何一個(gè)追求高質(zhì)量的代碼的人來(lái)說(shuō)都是必須 的。
有人說(shuō):“我討厭你的4個(gè)空格的縮進(jìn)。”我要說(shuō),什么?用4個(gè)空格來(lái)縮進(jìn)?這比用制表符過(guò)占用3個(gè)字符的空間。更重要的是,只要 是使用比記事本高級(jí)的編輯器,你可以自定義制表符的縮進(jìn)值。所以每個(gè)程序員都可以以其最習(xí)慣的方式來(lái)看代碼?梢詴r(shí)設(shè)置為4,也可以設(shè)置為0(如果你是個(gè) 受虐狂)。反正我不在乎,但你就是不能用空格來(lái)縮進(jìn)!
【10條PHP編程習(xí)慣】相關(guān)文章:
php多進(jìn)程編程詳解201711-12
隊(duì)列在編程中的實(shí)際應(yīng)用(php)-php技巧11-20
《PHP編程最快明白》第八講:php啟發(fā)和小結(jié)11-17
關(guān)于編程之打開(kāi)PHP文件的方法11-24
關(guān)于編程之PHP常用MySql操作的方法11-25
關(guān)于編程之php三元運(yùn)算符的知識(shí)點(diǎn)11-24
探索結(jié)對(duì)編程08-20