php培訓:有關php語言的幾點精華(二)?

Tags: 語言, 精華,

由於篇幅有限,這裡只是簡單地說一說這些內容,如果真的想學的話,還請看專門的教材。如光要講清楚正則表示式就可以寫上一本小書。

3、模板

  知道了正則表示式的功能,那麼就可以知道模板了。什麼是模板?舉個例子吧?一般寫網頁用到了後臺程式的時候,都是在網頁裡面插入程式程式碼。如PHP。這就是HTML和PHP的混寫。這樣的優點是讀取速度快,缺點是如果大家分工合作做網站,那麼非程式設計師就不會改網了。

  而用模板,則可以達到分工的最合理化。美工只做頁面,程式只寫後臺,然後再合起來。優秀的JSP提供了自定義標籤的功能很好地完成了模板功能。而主流的PHP如何做到呢?就是利用正則表示式來做到的。可以去網上下載一個PHPLIB,裡面的PHP目錄下有一個template.inc的原始碼檔案,那就是用PHP實現模板套用的類。下面是達內php培訓老師為大家分享的具體內容。

  3.11.
記錄所有的空語句

  總是記錄下for或者是while的空塊語句,以便清楚的知道該段程式碼是漏掉了,還是故意不寫的。

while
($dest++ = $srC++); // VOID

  3.12.
不要採用預設方法測試非零值

  不要採用預設值測試非零值,也就是使用:

  if
(FAIL != f())

  比下面的方法好:

  if
(f())

  即使
FAIL 可以含有 0 值
,也就是PHP認為false的表示。在某人決定用-1代替0作為失敗返回值的時候,一個顯式的測試就可以幫助你了。就算是比較值不會變化也應該使用顯式的比較;例如:if
(!($bufsize % strlen($str)))應該寫成:if (($bufsize % strlen($str)) ==
0)以表示測試的數值(不是布林)型。一個經常出問題的地方就是使用strcmp來測試一個字元等式,結果永遠也不會等於預設值。

  非零測試採用基於預設值的做法,那麼其他函式或表示式就會受到以下的限制:

·
只能返回0表示失敗,不能為/有其他的值。

  ·
命名以便讓一個真(true)的返回值是絕對顯然的,呼叫函式IsValid()而不是Checkvalid()。

  3.13.
布林邏輯型別

  大部分函式在FALSE的時候返回0,但是發揮非0值就代表TRUE,因而不要用1(TRUE,YES,諸如此類)等式檢測一個布林值,應該用0(FALSE,NO,諸如此類)的不等式來代替:

  if
(TRUE == func()) { ...

  應該寫成:

  if
(FALSE != func()) { ...

  3.14.
通常避免嵌入式的賦值

  有時候在某些地方我們可以看到嵌入式賦值的語句,那些結構不是一個比較好的少冗餘,可讀**強的方法。

while
($a != ($c = getchar())){process the character}

  ++和--操作符類似於賦值語句。因此,出於許多的目的,在使用函式的時候會產生副作用。使用嵌入式賦值提高執行時**能是可能的。無論怎樣,程式設計師在使用嵌入式賦值語句時需要考慮在增長的速度和減少的可維護**兩者間加以權衡。例如:

  a
= b + c;

  d
= a + r;

  不要寫成:

  d
= (a = b + c) + r;

  雖然後者可以節省一個週期。但在長遠來看,隨著程式的維護費用漸漸增長,程式的編寫者對程式碼漸漸遺忘,就會減少在成熟期的最優化所得。

總結:

  4.
幫助與共享

  4.1.
重用您和其他人的艱苦工作

  跨工程的重用在沒有一個通用結構的情況下幾乎是不可能的。物件符合他們現有的服務需求,不同的過程有著不同的服務需求環境,這使物件重用變得很困難。

語言, 精華,
相關問題答案