(轉)詳解PHP編碼規範文檔

來源:互聯網
上載者:User

標籤:字母   編碼   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編碼規範文檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.