PHP Heredoc 的樂趣

Heredoc PHP Heredoc PHP 語法是PHP裏面寫入一大塊的文字的方式,不是傳統的使用單引號,雙引號字符串分隔符。他依賴於<<<和一個用來表示這個字符串的結束的標示符。<?php $string = <<<STRING$x elephpants STRING ; ?>Heredoc 還有一個Nowdoc替代, 它是Heredo的“單引號版本”。 它實際上在標示符定義上就是用了單引號,並且不會替換它裏面的變量值。<?php $string = <<<‘STRING’$x elephpants STRING ; ?>Nowdoc 很少被使用。在Heredoc/Nowdoc的使用中,僅僅只有3%使用Nowdoc的語法。這個可能是因爲Nowdoc最近才被加到語言中(PHP 5.3),又或者是典型的擔心未來可能會要使用字符串中的變量。

什麼是可行的靜態分析

靜態分析指在不執行代碼的情況下審查代碼。這樣的代碼審查可以是一個項目的一個階段,或者當代碼被轉移給一個新的程序員(他也可能是6個月後的你自己)的時候自然發生。在兩種情況下,目的都是通過閱讀代碼找到缺陷,理解它和找到不可能的情況。

爲什麼靜態審計幫助代碼質量

靜態審計是一個幫助提高代碼質量的非常好的工具。審計意味着寫下的代碼被一個外部的審計師審查。人工的審計者通常是最好的,雖然他們不是總是適用。靜態審計提供一個代碼審查的自動的方法,並能很快地接收到反饋。它系統性地檢查每一個文件的每一行代碼。它不針對同人工審覈一樣的違規實例,但是也帶來一系列的很好地優勢:

在PHP中用好接口

 什麼是接口? 接口,在PHP中也像在其他的面向對象(OOP)的語言中一樣,定義在一個類中有哪些方法必須實現。接口給名字和參數以記錄,但是沒有內容:實際的(實現)代碼將會要類來提供。<?php interface movable { function move($distance) ; } class human implements movable { public function move($distance) { $this->walk($distance); } } class dog implements movable { public function move($distance) { $this->run($distance); // dogs never walk…} } class marsrover implements movable { public function move($distance) { for($i = 0; $i< $distance / […]

PHP裏的神奇數字

神奇數字式一個沒有解釋其意義的字面值,而且它出現在代碼裏多次。這樣的值將會顯示沒有任何意圖,它應該被替換爲常量:常量的名字將會使代碼更可讀,在未來更加容易更新。 ç 讓我們來看看一些代碼,並且把它的神奇數字分離出來來試圖理解它的情況。這是一個真實的數字的例子,來源於最近發佈的一個關於120 kLOC的開源應用。     Value Number of occurrences 0.0 1 1.0E-08 1 0.05 1 0.33 1 1.0 10 1.7 4 2.0 1 2.3 1 3.2 1 4.0 1 4.199999 1 4.299999 1 5.0 1 5.2 2 7.3 1 8.0 1 365.25 3 3600.0 1 用眼快速地掃一下顯示: 0.33 看上去像是 1/3, 有點取一個近似值。它可以被取代爲用被除數3的除法。 365.25 看上去像一個一年的時間用天表示。另外一個可疑的地方時整數365和366在應用中使用了多次。 幾個整數被表達爲實數(0, […]

更好的PHP Echo

你能在下面這行代碼中找到多少可以改進的地方呢? echo (“this “.$will.” be displayed.”); Echo不需要小括號 首先,可能也是最明顯的是那個無用的小括號。這個echo是一個“語言結構”(structure of language),也叫做PHP一個特殊的函數:在包括其他的一些特點中,一個特點是它不需要任何的小括號。這個其實也適用於inclusions,return和print。上面的代碼和下面的代碼實現一樣的目的:

代碼死亡

代碼是如何死亡的 代碼出生,成長,成熟,衰老然後死亡。它可能被視作一個生命體,就像我的花園裏的鬱金香一樣。把這樣一個圖景放到代碼上有點可怕:小小的筆誤出現了,一點點代碼消失了,常量隨着時間的推移改變着它們的值(代碼也有通貨膨脹嗎?),一部分代碼長出來了沒有任何道理。這樣一個樣子,那麼難怪代碼會有一個壽終正寢的時候。