當前位置:文思屋>學習教育>考研>

10條PHP程式設計習慣

文思屋 人氣:3.15W

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

10條PHP程式設計習慣

當使用雙引號來括字串時,PHP直譯器會對其進行變數替換、轉義等操作,如 “n”。如果只想輸出一個基本的字串,用單引號會節省一些資源。當然,如果需要進行變數替換的,那就必須用雙引號了。

2、字串的輸出

以下哪一條語句的執行速度最快?

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;

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

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

正如你在上面的測試題中所看到的,$x[sales]從嚴格意義上來說是錯誤的,索引應該被括起來,即$x['sales']。這是因為PHP會將 沒有括起來的索引辨認為“裸”字串,並把它解釋為一個常量。當找不到該常量的定義時,才將其解釋為一個字串,所以這條語句才是可執行的。把索引括起來 可以省去這部分工作,如果將來正好要用這一字串定義常量時也就不會有錯誤了。

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

你正在使用 這樣的符號嗎?“

5、儘量不要使用正則表示式

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

6、不要在迴圈宣告中使用函式

這個問題不單單出現在PHP中,你可以在其他語言的程式碼中經常看到:

差:for($i=0;$i< count($array);$i++){…}

好:$count=count($array);for($i=0;$i& lt;$count;$i++){…}

如果在迴圈宣告中使用了 count函式,那每次迴圈都會呼叫一次。如果迴圈次數很多,會浪費非常多的時間。

7、不要使用 register_globals和magic quotes

老版本的PHP在安裝時會預設開啟這兩個功能,這會引起安全漏洞、程式設計錯誤及其他的問題,如只有使用者輸入了資料時才會建立變數等。如今這兩個功 能都被捨棄了,每個程式設計師都應該避免使用。

8、一定要對變數進行初始化(這 裡的“初始化”指的是“宣告”)

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

9、對程式碼進行註釋

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

我知道有些自稱為PHP大師的.人聲稱自己的程式碼寫得很好,不需要新增什麼注 釋。在我看來,這些人都是垃圾。學一寫註釋的規範和技巧,熟悉一下phpDocumentor或Doxygen之類的註釋輔助軟體,都是值得的。

10、遵循一個程式設計規範

關於這一點,是你需要在面試中詢問你潛在的老闆的,問問他們正在使用什麼程式設計規範。PEAR?Zend?內部規範? 要提及你正在使用的程式設計規範,不管是你自己建立的,還是目前普遍流行的一種。對於PHP這種鬆鬆垮垮的語言來說,如果沒有一個好的程式設計規範,那麼那些程式碼 就會看起來想一堆垃圾。發臭的,令人作嘔的垃圾。一些基本的規範包括空格規範、打括號匹配、命名風格等。這對任何一個追求高質量的程式碼的人來說都是必須 的。

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