搜尋
首頁php教程php手册PHP程式設計風格規格分享_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 --;
P>

備註 加一減一運算子不能加空格。

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

錯誤

複製程式碼 程式碼如下:
for($i = 0; $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 strlen($my_name);

錯誤

複製程式碼 程式碼如下:
for($i = 0; $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 $
*/
div>

備註
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 phpcnltpa
* @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
*
* <br>* if get_class($blah) == 'parserBlah'<br>*
* always "inlinetag"
* @var string
*/
var $* always "inlinetag"
* @var string
*/
var $* always "inlinetag"
* @var string
*/
var $* always "inlinetag"
* @var string
*/
var $* 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 '';
}
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

北端:融合系統,解釋
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具