監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
新余網(wǎng)站建設(shè)公司

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 新余OA > 新余網(wǎng)站建設(shè)公司

養(yǎng)成幾條PHP編程好習(xí)慣

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

 1、運(yùn)用單引號(hào)括起來(lái)的字符串

  當(dāng)運(yùn)用雙引號(hào)來(lái)括字符串時(shí),PHP分析器會(huì)對(duì)其進(jìn)行變量交換、轉(zhuǎn)義等操作,如“ ”。假如你只想輸出一個(gè)根本的字符串,就用單引號(hào)吧,如許會(huì)節(jié)流一些資本。當(dāng)然,假如你需求進(jìn)行變量交換的,那就必需用雙引號(hào)了,但其他狀況下照樣用單引號(hào)吧。

  2、字符串的輸出

  你以為以下哪一條語(yǔ)句的運(yùn)轉(zhuǎn)速度最快?

<span style="COLOR: rgb(0,100,0)">  print "Hi my name is $a. I am $b";

<span style="COLOR: rgb(0,100,0)">  echo "Hi my name is $a. I am $b";

<span style="COLOR: rgb(0,100,0)">  echo "Hi my name is ".$a.". I am ".$b;

<span style="COLOR: rgb(0,100,0)">  echo "Hi my name is ",$a,". I am ",$b;

<span style="COLOR: rgb(0,100,0)">  echo 'Hi my name is ',$a,'. I am ',$b;

  也許這看起來(lái)很奇異,但現(xiàn)實(shí)上最終一條的運(yùn)轉(zhuǎn)速度是最快的。print比echo要慢,在字符串中進(jìn)行變量交換時(shí)會(huì)慢,而銜接字符串要比用逗號(hào)銜接來(lái)得慢,最終一句則是第一個(gè)習(xí)氣的表現(xiàn)。所以,不在字符串中進(jìn)行變量交換不只會(huì)加速順序運(yùn)轉(zhuǎn)速度,也會(huì)讓你的代碼在任何語(yǔ)法高亮顯示的編纂器中顯得更為易懂(變量會(huì)被高亮顯示出來(lái))。很少人曉得echo的參數(shù)可以用逗號(hào)銜接,且速度會(huì)比字符串銜接要來(lái)得快。最終再用上第一個(gè)習(xí)氣,那這條語(yǔ)句就十分好了。

  3、在數(shù)組索引中運(yùn)用單引號(hào)

  正如你在上面的測(cè)試題中所看到的,我指出了$x[sales]從嚴(yán)厲意義上來(lái)說(shuō)是錯(cuò)誤的,索引應(yīng)該被括起來(lái),即$x['sales']。這是由于PHP 會(huì)將沒(méi)有括起來(lái)的索引識(shí)別為“裸”字符串,并把它分析為一個(gè)常量。當(dāng)找不到該常量的界說(shuō)時(shí),才將其分析為一個(gè)字符串,所以這條語(yǔ)句才是可運(yùn)轉(zhuǎn)的。把索引括起來(lái)可以省去這局部任務(wù),假如未來(lái)正好要用這一字符串界說(shuō)常量時(shí)也就不會(huì)有錯(cuò)誤了。我甚至據(jù)說(shuō)如許做要快七倍左右的工夫,固然我沒(méi)有親身測(cè)試過(guò)。更多關(guān)于這一話題的評(píng)論,請(qǐng)看PHP手冊(cè)“數(shù)組”一章中的的“數(shù)組的能與不克不及”一節(jié)。

  4、不要運(yùn)用開(kāi)端標(biāo)記的縮寫(xiě)方式

  你正在運(yùn)用如許的符號(hào)嗎?“

  5、盡量不要運(yùn)用正則表達(dá)式

  在進(jìn)行慣例的字符串操作時(shí),盡能夠不要去運(yùn)用正則表達(dá)式(preg和ereg系列函數(shù))。str_replace函數(shù)要比preg_replace快得多,甚至strtr函數(shù)也要比str_replace來(lái)得快。省去這些不用要的費(fèi)事吧,你的老板會(huì)感激你的。

  6、不要在輪回聲明中運(yùn)用函數(shù)

  這個(gè)問(wèn)題不單單呈現(xiàn)在PHP中,你可以在其他言語(yǔ)的代碼中常常看到:

<span style="COLOR: rgb(0,100,0)">  差:for($i=0;$i

<span style="COLOR: rgb(0,100,0)">  好:$count=count($array);for($i=0;$i<$count;$i++){...}

  這因該很好分析,但很多人就是想少寫(xiě)一行代碼而糜費(fèi)了系統(tǒng)資本。假如在輪回聲明中運(yùn)用了count函數(shù),那每次輪回都邑挪用一次。假如你的輪回次數(shù)良多,那就會(huì)糜費(fèi)十分多的工夫。

  7、永遠(yuǎn)不要運(yùn)用register_globals和magic quotes

  這是兩個(gè)很陳舊的功用,在那時(shí)(十年前)也許是一個(gè)好辦法,但目前看來(lái)并非如斯。老版本的PHP在裝置時(shí)會(huì)默許翻開(kāi)這兩個(gè)功用,這會(huì)惹起平安破綻、編程錯(cuò)誤及其他的問(wèn)題,如只要用戶輸入了數(shù)據(jù)時(shí)才會(huì)創(chuàng)立變量等?,F(xiàn)在這兩個(gè)功用都被舍棄了,所以每個(gè)順序員都應(yīng)該防止運(yùn)用。假如你曩昔的順序有運(yùn)用這兩項(xiàng)功用,那就盡快將其剔除吧。

  8、必然要對(duì)變量進(jìn)行初始化(這里的“初始化”指的是“聲明”——譯者注)

  當(dāng)需求沒(méi)有初始化的變量,PHP分析器會(huì)主動(dòng)創(chuàng)立一個(gè)變量,但依托這個(gè)特征來(lái)編程并不是一個(gè)好主見(jiàn)。這會(huì)形成順序的粗拙,或許使代碼變得另人疑惑,由于你需求探尋這個(gè)變量是從哪里開(kāi)端被創(chuàng)立的。別的,對(duì)一個(gè)沒(méi)有初始化的變量進(jìn)行遞增操作要比初始化過(guò)的來(lái)得慢。所以對(duì)變量進(jìn)行初始化會(huì)是個(gè)不錯(cuò)的主見(jiàn)。

  9、對(duì)代碼進(jìn)行注釋

  這個(gè)問(wèn)題曾經(jīng)提過(guò)良多次了,但再屢次也不敷。我曉得有些當(dāng)?shù)厥遣黄赣眉勚嚧a進(jìn)行注釋的順序員的。我在前一次任務(wù)面試后和副總、面試官一同閱讀我寫(xiě)的代碼,當(dāng)他們對(duì)我所做的代碼注釋印象深入,還調(diào)查了一下我的這一習(xí)氣。一天之后,我獲得了這個(gè)任務(wù)。

  我曉得有些自稱為PHP巨匠的人宣稱本人的代碼寫(xiě)得很好,不需求添加什么注釋。在我看來(lái),這些人都是渣滓。學(xué)一寫(xiě)注釋的標(biāo)準(zhǔn)和技巧,熟習(xí)一下phpDocumentor或Doxygen之類的注釋輔佐軟件,都是值得的。

  10、遵照一個(gè)編程標(biāo)準(zhǔn)

  關(guān)于這一點(diǎn),是你需求在面試中訊問(wèn)你潛在的老板的,問(wèn)問(wèn)他們正在運(yùn)用什么編程標(biāo)準(zhǔn)。PEAR?Zend?內(nèi)部標(biāo)準(zhǔn)?要說(shuō)起你正在運(yùn)用的編程標(biāo)準(zhǔn),不論是你本人創(chuàng)立的,照樣當(dāng)前遍及盛行的一種。關(guān)于PHP這種松松垮垮的言語(yǔ)來(lái)說(shuō),假如沒(méi)有一個(gè)好的編程標(biāo)準(zhǔn),那么那些代碼就會(huì)看起來(lái)想一堆渣滓。發(fā)臭的,令人作嘔的渣滓。一些根本的標(biāo)準(zhǔn)包羅空格標(biāo)準(zhǔn)、打括號(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è)字符的空間。更主要的是,只需是運(yùn)用比記事本高級(jí)的編纂器,你可以自界說(shuō)制表符的縮進(jìn)值。所以每個(gè)順序員都可以以其最習(xí)氣的方法來(lái)看代碼??梢詴r(shí)設(shè)置為4,也可以設(shè)置為0(假如你是個(gè)受虐狂)。歸正我不在乎,但你就是不克不及用空格來(lái)縮進(jìn)!

發(fā)布:2007-03-31 15:14    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
新余OA
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普新余網(wǎng)站建設(shè)公司其他應(yīng)用

新余軟件開(kāi)發(fā)公司 新余門(mén)禁系統(tǒng) 新余物業(yè)管理軟件 新余倉(cāng)庫(kù)管理軟件 新余餐飲管理軟件 新余網(wǎng)站建設(shè)公司