PHP編程風格規範分享

來源:互聯網
上載者:User

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

說明:本規範由 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 代碼:正確  代碼如下:array( 'name'   => '', 'gender'  => '' );   $user_info['name'];   錯誤  複製代碼 代碼如下:array( name => '', gender    => '' );   $user_info[name];  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 代碼: 代碼如下:/*** 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 代碼: 代碼如下:/*** Use this element to represent an {@}inline tag} like {@}link}* @see parserStringWithInlineTags* @package phpDocumentor* @subpackage InlineTags* @author Greg Beaver <cellog@users.sourceforge.net>* @since 1.0rc1* @version $Revision: 1.21.2.6 $* @tutorial inlinetags.pkg*/  3.2.4 類屬性注釋樣本注釋名稱 類屬性注釋注釋示範:PHP 代碼:  代碼如下:/*** Element type** Type is used by many functions to skip the hassle of** <code>* if get_class($blah) == 'parserBlah'* </code>* always "inlinetag"* @var string*/var $type = 'inlinetag';  3.2.5 函數/類方法注釋樣本注釋名稱 函數/類方法注釋注釋示範:PHP 代碼:   代碼如下:/*** @return string always ''* calculate the short description of a DocBlock* @see parserStringWithInlineTags::getString()* @see parserStringWithInlineTags::trimmedStrlen()*/function getString(){ 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.