標籤:字母 編碼 alt 一行代碼 idt for迴圈 縮排 解釋 計算
使用駝峰結構命名,即以小寫字母開頭,從第二個單詞開始,每個單詞的第一個字母大寫。
大半天時間整理的PHP編碼規範…
一、命名規範:
1. 常量的命名
1) 字母,全部大寫,使用“_” 分隔單詞。
如:DEFINE(“PHP_DEMO_PRINT”,”hEllo world”);
2. 變數的命名
1) 使用駝峰結構命名,即以小寫字母開頭,從第二個單詞開始,每個單詞的第一個字母大寫。
如:$getElement=”myodbc”;
2) 全域變數以“g_”開頭,非全域變數不要以“g_”開頭
如:$g_i;
3) 所有的“臨時”變數使用完畢後必須unset。
4) 不允許出現字母完全相同,僅大小寫不同的命名。
5) 不允許在命名的結尾使用底線。
6) 不要出現單字母的變數,如i,j,k(只有在控制迴圈數時且迴圈代碼條數在3條以內,才可以考慮使用)
7) 變數名中不能出現數字。
8) 變數名最好能表示出是數值型還是字串型變數。
如:$myCount_i表示數值型變數,$myString_s表示字串。
9) 如果有計算限定符,把限定詞加到名字的最後。
如:$calTimeStart 、 $calTimeEnd.
3. 函數的命名
1) 函數名全部小寫,單詞之間可以使用底線。
2) 存取對象的函數名使用 set_xxx() 和get_xxx() 形式。
3) 布爾類型的函數名可以使用 isxxx() 形式。
4) 函數名中不能出現數字。
4. 類命名
1) 類名用第一個字母大寫的英文正常語序準確描述類的含義。如:Employee。
2) 類的方法命名規則與函數的命名規則一致。
3) 類的屬性名稱採用全字母小寫。
5. 檔案的命名
1) 檔案名稱字元全部採用小寫
2) 檔案名稱要能反映出其內容及功能。
如:儲存有類的檔案,name.class.php;存有函數的檔案可採用name.func.php或name.inc.php來命名;設定檔,name.cfg.php或者config.inc.php 。
二、注釋規範:
1. 變數的注釋
1) 變數的同行後空一格使用雙斜線注釋。
如:$myDemo = ’a demo’; //這是行內注釋
2. 函數與函數體的注釋
/*
@xxxx、bbb
*/
//描述函數的功能和傳回值和引用方法
function ff(aaa, bbb) {
……
// 普通夾雜在代碼裡的單行注釋
……
return false;
}
3. 檔案的注釋
1) 檔案功能、建立人資訊、時間。
2) 已知的Bug。當然最好是修正所有錯誤,但可能暫時還沒有辦法修正錯誤,或暫時沒有精力去修改
3) 開發和維護檔案的曆史列表。記錄每一次修改的作者、日期、修改的內容
4) 對主要的演算法必須加以解釋說明,主要的流程必須給出引導性的說明
5) 標準格式
/** * @description 描述類的功能、用途、現存BUG,設計方法。 * @author 作者姓名 * @version 最後修改日期(日期格式建議採用:年-月-日格式,例如:2008-04-05) */ 如果對已經版本化的類進行了修改,需要按照如下格式為每一次修改附加修改記錄: * @modify * 修改人 + 修改日期(日期格式建議採用:年-月-日格式,例如:2008-04-05) * 修改說明 |
三、代碼書寫風格
1. 總原則
1) 一行代碼盡量簡短,並且保證一行代碼只做一件事。
2) 使用圓括弧來界定操作的順序。不要讓別人判斷複雜的操作優先順序。
3) 合理使用空行,劃分邏輯處理。
4) 代碼縮排使用TAB鍵(設定四個空格)。
5) 建議遵循三十秒原則。如果另一個程式員無法在三十秒之內瞭解你的函數做了什麼,如何做以及為什麼要這樣做,那就說明你的代碼是難於維護的,必須得到提高。
2. 控制結構
1) If 規範:
1. else 後面的if,另起一行
2. 把對比常量,放在等式左邊
3. 分支要加上注釋,注釋前面加一個(TAB)縮排
if (6 == $errorNum) { //注釋1
..
} else {
if (5 == $num) { //注釋2
…
} else {
…
}
}
2) Switch規範:
switch (…) {
case 1: //分支1注釋
…
// 這裡沒有break,直接轉到下個case,須要加註釋
case 2: { //分支2注釋
$v = get_week_number(); // 創立變數,在{}之中
…
}
break;
default:
}
3) For規範:
For($i=1;$i<=3;$i++) {
……
}
4) While 規範:
While ($i<=5) {
….
}
5) Foreach 規範:
Foreach ($arr as $v => $k) {
….
}
四、代碼書寫風格
1. 使用$row[‘id’]方式取資料,不要使用$row[id]方式。
2. 純字串使用單引號包含。
3. 刪除未使用的變數
4. 執行for迴圈之前確定最大迴圈數,不要每迴圈一次都計算最大值。
5. 迴圈內部不要聲明變數,尤其是大變數:對象(語言通用)。
6. 執行字串替換前用strpos()函數判斷是否存在後再執行替換函數。
7. 用foreach代替while遍曆數組。遍曆數組時foreach的效率明顯高於while迴圈
8. str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍
9. 當執行變數$i的遞增或遞減時,$i++會比++$i慢一些。這種差異是PHP特有的
10. 用@屏蔽錯誤訊息的做法非常低效。
(轉)詳解PHP編碼規範文檔