PHP編程規範

來源:互聯網
上載者:User
一直以來我都是以php函數的風格來寫php,所有變數,函數,類都使用小寫,單詞之間以底線隔開,一直比較排斥駝峰式的代碼規範,個人覺得在大小寫字母之間的書寫代碼,很麻煩,而且PHP自己的函數都是小寫,為什麼我不用這種格式呢?

良好的代碼書寫習慣 + 良好的注釋習慣 + PhpDocumentor = 程式說明書

一個團隊,必須有整齊的代碼書寫習慣,如果再配上統一的IDE開發環境,詳細的任務編碼流程,完善的代碼測試(如:SimpleTest),那麼整個團隊的開發效率將會有很大的提高。

如果你的IDE是Eclipse,那麼你可以很方便的進行代碼測試,使用SimpleTest參考http://www.guogoul.com/2008/05/19/simpletest_1/

說明: 本規範由EasyChen 借鑒 SINA網路應用開發部《C++開發規範》和互動技術部《PHP4開發規範》,以及phpDocument規範 整理出的開發規範. 我覺得非常不錯, 適合PHP的開發. 給大家參考, 養成一個良好的編程風格是非常有必要的。(轉載)

第1章 命名規範1.1變數1.1.1全域變數
全域變數使用$g_開頭,如$g_data_list。

1.1.2 一般變數
一般的變數使用小寫字母命名,單詞之間使用底線分隔。
變數名字應該使用名詞或者形容詞+名詞的方式。如$value,$new_value。

1.1.3 臨時變數
不要將在迴圈中頻繁使用的臨時變數如$i,$j等用於其它用途。

1.2 函數
函數採用小寫字母命名,單詞之間使用底線分隔。
函數的命名建議使用動詞+名詞的方式,如get_user_img。
完成一組功能的函數放到一個檔案中,存放函數的檔案採用function_name.func.php命名。

1.3 類
類使用英文的大小寫來分隔單詞,包括首個單詞,所有單詞的首字母大寫,如PageManager;
在類中,方法放到屬性定義前邊、公用方法放到專用方法前邊;
一般情況下,一個類對應到一個檔案;
當一些類別關係緊密時,可以存放在一個檔案中;
存放類的檔案採用ClassName.class.php方式命名。

1.4 方法
方法使用英文的大小寫來分隔單詞,除首個單詞外,其他單詞的首字母大寫,如getCurrentPage();
不要採用不常用的縮寫,如where2go();
使用常用的縮寫時,只大寫首字母,如getHtml()。

第2章 版式規則

2.1 語義分隔
各個函數、方法之間應該採用空行間隔;
同一個函數中聯絡緊密的語句之間可以不換行,其他情況需要換行。

2.2 空格規則

2.2.1 邏輯運算子前後必須加空格
正確 $a == $b;
錯誤 $a==$b;
$a ==$b;
備忘 -

正確 $a++; $a?;
錯誤 $a ++; $a ?;
備忘 加一減一運算子不能加空格。

2.2.2 多個參數分隔時必須加空格
正確 $g_pro , $g_user , g_show;
get_db_info($host, $user, $passwd);
錯誤 $g_pro,$g_user,$g_show;
get_db_info($host,$user,$passwd);
備忘 -

2.2.3 文法關鍵字後必須加空格
例如:If, for , while, switch …..

正確 for ($i = 0; $i < 10; $i++)
錯誤 for($i = 0; $i < 10; $i++ )
備忘 -

2.3 字串和變數串連規則
字串與變數串連使用’.'號時,必須在’.'前後加空格,使用”號時,必須在變數前後加”{}”。

正確 $my_name = ’file_’ . $var1;
$my_name = ”file_{$var1}”;
錯誤 $my_name = ”file_’.$var1;
$my_name = ”file_$var1″;
備忘 -

2.4 圓括弧規則
函數名後括弧不需要加空格、文法關鍵字後的括弧必須加空格。

正確 for ($i = 0; $i < 10; $i++)
strlen($my_name);
錯誤 for($i = 0; $i < 10; $i++ )
strlen ($my_name);
備忘 -

2.5 花括弧規則
花括弧必須為上下對應。

正確
if ($a)
{
$b = $a;
}

錯誤 if ($a){
$b = $a;
}

備忘 -

2.6 數組定義規則

數組定義和使用時中key值前後必須加單引號。

PHP 代碼:

下載: php_array.php //正確
array(
'name' => ‘d5s.cn’,
‘gender’ => ‘php’
);
//錯誤
array(
name => ‘d5s.cn’,
gender => ‘php’
);
?>

2.7 SQL規則

在PHP中嵌入的SQL語句關鍵字全部採用大寫;
表名和欄位名要用反引號(`)引起來以防止因為欄位名中包含空格而出現錯誤;
資料值兩邊用單引號”包括,並且應確保資料值中的單引號已經轉義以防止SQL注入。

正確 $sql = ”SELECT `user`.`name` FROM `user` WHERE `id` = ’$id’ LIMIT 1″;
錯誤 $sql = ”select name.user from name where id = $id ”;
備忘 -

第3章 注釋規則

3.1 一般規則
不寫不必要的注釋;只有當代碼不能很好地說明邏輯時,才用注釋補充;
把注釋看成程式的一部分,在編寫/維護代碼時同時編寫/維護注釋;
注釋完全採用PHPDocumentor的規範,以方便用其產生API級文檔。

3.2 詳細規則
請參見PHPDocumentor手冊。下邊給出各個部分的注釋示範。

3.2.1 著作權資訊
注釋名稱 著作權資訊
注釋示範 //
// +?????????????????-+
// | phpDocumentor |
// +?????????????????-+
// | Copyright (c) 2000-2003 Joshua Eichorn |
// | Email jeichorn@phpdoc.org |
// | Web http://www.phpdoc.org |
// +?????????????????-+
// | This source file is subject to PHP License |
// +?????????????????-+
//
備忘 使用//來標示著作權資訊,以免和PHPDocumentor的page-level DocBlock發生衝突

3.2.2檔案頭注釋樣本

注釋名稱 檔案頭注釋
注釋示範

下載: php_doc.php * All abstract representations of inline tags are in this file
* @package phpDocumentor
* @subpackage InlineTags
* @since separate file since version 1.2
* @version $Id $
*/
?>

備忘
1 檔案頭注釋需要指明所屬的包和子包
2 在@version中加上$ID,以方便使用CVS管理檔案

3.2.3 類注釋樣本
注釋名稱 類注釋
注釋示範

下載: php_class.php /**
* Use this element to represent an {@}inline tag} like {@}link}
* @see parserStringWithInlineTags
* @package phpDocumentor
* @subpackage InlineTags
* @author Greg Beaver
* @since 1.0rc1
* @version $Revision: 1.21.2.6 $
* @tutorial inlinetags.pkg
*/
?>

備忘 -

3.2.4 類屬性注釋樣本
注釋名稱 類屬性注釋
注釋示範

下載: php.php /** var $type = 'inlinetag';
* Element type
*
* Type is used by many functions to skip the hassle of
*
*
* if get_class($blah) == ‘parserBlah’
*
* always "inlinetag"
* @var string
*/
?>

備忘 -

3.2.5 函數/類方法注釋樣本
注釋名稱 函數/類方法注釋
注釋示範

下載: php.php /** function getString() '';
* @return string always ''
* calculate the short description of a DocBlock
* @see parserStringWithInlineTags::getString()
* @see parserStringWithInlineTags::trimmedStrlen()
*/

{
return
}
?>

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.