監(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í)慣

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

 1、運(yùn)用單引號括起來的字符串

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

  2、字符串的輸出

  你以為以下哪一條語句的運(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;

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

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

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

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

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

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

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

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

  這個(gè)問題不單單呈現(xiàn)在PHP中,你可以在其他言語的代碼中常??吹剑?/p>

<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++){...}

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

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

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

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

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

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

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

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

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

  關(guān)于這一點(diǎn),是你需求在面試中訊問你潛在的老板的,問問他們正在運(yùn)用什么編程標(biāo)準(zhǔn)。PEAR?Zend?內(nèi)部標(biāo)準(zhǔn)?要說起你正在運(yùn)用的編程標(biāo)準(zhǔn),不論是你本人創(chuàng)立的,照樣當(dāng)前遍及盛行的一種。關(guān)于PHP這種松松垮垮的言語來說,假如沒有一個(gè)好的編程標(biāo)準(zhǔn),那么那些代碼就會(huì)看起來想一堆渣滓。發(fā)臭的,令人作嘔的渣滓。一些根本的標(biāo)準(zhǔn)包羅空格標(biāo)準(zhǔn)、打括號匹配、定名作風(fēng)等。這對任何一個(gè)追求高質(zhì)量的代碼的人來說都是必需的。

  有人說:“我厭惡你的4個(gè)空格的縮進(jìn)。”我要說,什么?用4個(gè)空格來縮進(jìn)?這比用制表符過占用3個(gè)字符的空間。更主要的是,只需是運(yùn)用比記事本高級的編纂器,你可以自界說制表符的縮進(jìn)值。所以每個(gè)順序員都可以以其最習(xí)氣的方法來看代碼。可以時(shí)設(shè)置為4,也可以設(shè)置為0(假如你是個(gè)受虐狂)。歸正我不在乎,但你就是不克不及用空格來縮進(jìn)!

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

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

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

咨詢:400-8352-114

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

QQ在線咨詢

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

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