PHP 代碼規范


 

命名規范
 
Θ 類文件都以.class.php為后綴,使用駝峰法命名,並且首字母大寫,例如 Pay.class.php;
Θ 類名和目錄_文件名一致。例如:類名Zend_Autoloader的目錄是Zend/Autoloader.class.php;
Θ 函數的命名使用小寫字母和下划線的方式。例如:get_client_ip;
Θ 方法的命名使用駝峰法,首字母小寫或者使用下划線"_",例如listComment(),_getResource(),通常下划線開頭的方法屬於私有方法;
Θ 屬性的命名使用駝峰法,首字母小寫或者使用下划線"_",如$username,$_instance,通常下划線開頭的屬性屬於私有屬性;
Θ 常量以大寫字母和下划線"_"命名,如"HOME_URL";
 
 
常用名詞
 1>list名詞(單數),如listApple,一看我們就知道讀取蘋果列表,我們沒有必要寫成getApples或者listApples或readApples——因為get我們規定一般用於讀取單個數據,如getApple.listApples不加s我們也知道是取蘋果列表(保證盡量縮短變量命名);
 2>get名詞(單數);
 3>名詞Total,表示某個東西的總數。如expenseTotal;
 4>found:表示某個值是否已經找到;
 5>uccess或ok:一項操作是否成功;
 6>done:某個工程是否完成;
 7>error:是否有錯誤發生;
 8>result:返回的結果
 
代碼重構
 
 1.函數或者方法體內的代碼盡量控制在一個屏幕內。
 2.類中不使用的方法隨機刪除。
 3.修改別人的類中方法,要簽名。
 4.在每個模塊內寫個readme文件(用於比較復雜業務的說明或代碼說明)。
 5.盡量讓每個類做自己的事,每個函數做一件事。

 

常用代碼
 
用&&或||簡化操作
 
簡化前:
$a=1;
$b = 0;
if(isset($a)){
    $b=1;
    print($b."\n");
}   

if($b!=0){
    print($b."\n");
} 

簡化后:

$a=1;
$b = 0;
isset($a) && ($b=1) && print($b."\n");
$b == 0 || print($b."\n"); 

 

明顯代碼看起來更加整齊,更加簡單!

 

判斷"=="時,我們有可能會把"=="寫成"=",這樣的bug我們很難調試圖來。所以,把常量放在前面,編譯器就能判斷出來。
 
之前:
$a = 1;
if($a = 1){
    echo '$a == 1';
}

之后:

$a = 1;
if(1 = $a){
    echo '$a == 1';
}

明顯,常量放在前面的話,編譯器就能判斷錯誤。

正規格式:

$a = 1;
if(1 == $a){
    echo '$a == 1';
}

 

 
查找表法
 
之前:
/*錯誤碼:4,5,7,8的時候返回狀態1,錯誤碼是1,3,6返回狀態2*/
$error = 4;
$state = 0;
if($error == 4 || $error == 5 || $error == 7 || $error == 8){ 
    $state = 1;
}

if($error == 1 || $error == 3 || $error == 6){ 
    $state = 2;
}
echo "$state \n";

 

之后:
/*錯誤碼:4,5,7,8的時候返回狀態1,錯誤碼是1,3,6返回狀態2*/
$error = 4;
$state = 0;

$arr = array(4 => 1, 5 => 1, 7 => 1, 8 => 1, 1 => 2, 3 => 2, 6 => 2);
isset($arr[$error]) && ($state = $arr[$error]);

echo "$state \n";

 明顯代碼更加凝練,更加清楚,更易懂,速度也更快!

總結
 
本來想把什么設計模式也往常用代碼里放置,但是太多了,不太好放。這些只是微部而已!
大家如果有更好的寫法的話,可以留言。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM