首頁 >後端開發 >php教程 >10條PHP程式好習慣

10條PHP程式好習慣

WBOY
WBOY原創
2016-07-25 09:04:29907瀏覽
  1. function baz($y $z) {
  2. $x = new Array();
  3. $x[sales] = 600 ;
  4. $x[profit] = 20:
  5. foreach($x as $key = $value) {
  6. echo $key+" "+$value+"
    ";
  7. }
  8. }
複製程式碼

聰明的,你能找到幾處呢?

如果你發現函數參數清單中少了逗號、「new Array()」是不正確的、行末用了冒號而不是分號、foreach中沒有用「=>」及用「+」來連接字符串,那恭喜你,你找到了所有的錯誤,你已經掌握了php程式設計的基礎。

我當然也找出了以上這些問題,但我更進一步。例如,你有沒有發現在陣列索引裡沒有用引號將字串括起來?雖然這不會造成嚴重錯誤,但這是一個編碼錯誤。另外,你注意到在echo一行它使用了雙引號而不是單引號嗎?使用了PHP開始標誌的縮寫形式?並且沒有用 “
”而是用了“
”?

在找出了實際錯誤後,我又在上面找到的問題後面加了註解。這足以讓這份答案紙從「正確」轉變為「發人深省」了,這也給我的申請加了不少分,所以他們決定聘用我。 (但最後我拒絕了,因為我喜歡緊湊的生活節奏,並將自己的PHP 技能奉獻給我的客戶,而不是一家涉獵電信市場的公司。我需要一個舞台來大展身手。)

10條PHP程式設計好習慣

1、使用單引號括起來的字串

當使用雙引號來括字串時,PHP解釋器會對其進行變數替換、轉義等操作,如「 」。如果你只想輸出一個基本的字串,就用單引號吧,這樣會節省一些資源。當然,如果你需要進行變數替換的,那就必須用雙引號了,但其他情況下還是用單引號吧。

2、字串的輸出

你認為以下哪一條語句的運行速度最快?

  1. print "Hi my name is $a. I am $b";
  2. echo "Hi my name is $a. I am $b" ;
  3. echo "Hi my name is ".$a.". I am ".$b;
  4. echo "Hi my name is ",$a,". I am ",$b;
  5. echo 'Hi my name is ',$a,'. I am ',$b;
複製代碼

也許這看起來很奇怪,但事實上最後一條的運行速度是最快的。 print比echo慢,在字串中進行變數替換時會慢,而連接字串要比用逗號連接來得慢,最後一句則是第一個習慣的體現。所以,不在字串中進行變數替換不僅會加快程式運行速度,也會讓你的程式碼在任何語法高亮顯示的編輯器中顯得更為易懂(變數會被高亮顯示出來)。很少人知道echo的參數可以用逗號連接,而且速度會比字串連接要來得快。最後再用上第一個習慣,那這篇語句就非常好了。

3、在陣列索引中使用單引號

正如你在上面的測驗題中所看到的,我指出了$x[sales]從嚴格意義上來說是錯誤的,索引應該被括起來,即$x['sales']。這是因為PHP 會將沒有括起來的索引辨別為「裸」字串,並把它解釋為一個常數。當找不到該常數的定義時,才將其解釋為字串,所以這條語句才是可運行的。把索引括起來可以省去這部分工作,如果將來剛好要用這一字串定義常數時也就不會有錯誤了。我甚至聽說這樣做要快七倍左右的時間,雖然我沒有親自測試過。更多關於這一主題的討論,請看PHP手冊“數組”一章中的“數組的能與不能”一節。

4、不要使用開始標誌的縮寫形式

你正在使用這樣的符號嗎? 「」是非常糟糕的符號,它會引起與XML解釋器的衝突。而且一旦你發布了這些程式碼,那麼使用者就必須修改php.ini檔案來開啟對此符號的支援。所以實在沒有理由去使用這種形式。用“

5、盡量不要使用正規表示式

在進行常規的字串操作時,盡可能不要去使用正規表示式(preg和ereg系列函數)。 str_replace函數要比preg_replace快得多,甚至strtr函數也要比str_replace來得快。省去這些不必要的麻煩吧,你的老闆會感謝你的。

6、不要在循環宣告中使用函數

這個問題不會單單出現在PHP中,你可以在其他語言的程式碼中經常看到: 差:for($i=0;$i

這因該很好解釋,但許多人就是想少寫一行程式碼而浪費了系統資源。如果在循環宣告中使用了count函數,那麼每次循環都會呼叫一次。如果你的循環次數很多,那就會浪費非常多的時間。

7、永遠不要使用register_globals和magic quotes

這是兩個很古老的功能,在當時(十年前)也許是一個好方法,但現在看來並非如此。舊版的PHP在安裝時會預設開啟這兩個功能,這會造成安全漏洞、程式錯誤及其他的問題,如只有使用者輸入了資料時才會建立變數等。如今這兩個功能都被捨棄了,所以每個程式設計師都應該避免使用。如果你過去的程式有使用這兩項功能,那就盡快將其剔除吧。

8、一定要初始化變數(這裡的「初始化」指的是「宣告」-譯者註)

當需要沒有初始化的變量,PHP解釋器會自動建立一個變量,但依靠這個特性來編程並不是一個好主意。這會造成程式的粗糙,或使程式碼變得另人迷惑,因為你需要探尋這個變數是從哪裡開始被創建的。另外,對一個沒有初始化的變數進行遞增操作要比初始化過的來得慢。所以對變數進行初始化會是個不錯的主意。

9、對程式碼進行註解

這個問題已經提過很多次了,但再多次也不夠。我知道有些地方是不聘用不對程式碼進行註解的程式設計師的。我在前一次工作面試後和副總、面試官一起瀏覽我寫的程式碼,當他們對我所做的程式碼註解印象深刻,也了解了一下我的這個習慣。一天之後,我得到了這份工作。

我知道有些自稱為PHP大師的人聲稱自己的程式碼寫得很好,不需要添加任何註解。在我看來,這些人都是垃圾。學一寫註解的規格和技巧,熟悉一下phpDocumentor或Doxygen之類的註解輔助軟體,都是值得的。

10、遵循一個程式規範

使用什麼程式規格。 PEAR? Zend?內部規範?要提及你正在使用的程式規範,不管是你自己創造的,還是目前普遍流行的一種。對於PHP這種鬆鬆垮垮的語言來說,如果沒有一個好的程式規範,那麼那些程式碼就會看起來想一堆垃圾。一些基本的規範包括空格規範、打括號匹配、命名風格等。這對任何一個追求高品質的程式碼的人來說都是必須的。

有人說:「我討厭你的4個空格的縮排。」我要說,什麼?用4個空格來縮排?這比用製表符過佔用3個字元的空間。更重要的是,只要是使用比記事本高級的編輯器,你可以自訂製表符的縮排值。所以每個程式設計師都可以用最習慣的方式來看程式碼。可以時設定為4,也可以設定為0(如果你是個受虐狂)。反正我不在乎,但你就是不能用空格來縮排!



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