1、PHP中對各類變數內容的命名規範
(1)目錄命名、檔案命名、局部變數命名:
使用英文名詞、動詞,以底線作為單詞的分隔,所有字母均使用小寫
目錄:upload、templates、install、manage……
檔案:index.php 、 register.php 、 config.php……
變數:$user , $pay_time , $pay_del_cont ……
(2)全域常量命名:
使用英文名詞、動詞,所有字母都使用大寫,以底線分隔每個單詞
define( 'WEBSITE_NAME', '名稱' );
define( 'WEBSITE_URL', '地址' );
英文名詞、動(3)陣列變數命名:
詞,以底線作為分隔,所有字母均使用小寫以array結束
$scope_array = array();
$book_id_array = array();
(4)物件變數命名:
英文名詞、動詞,以底線作為分隔,可以完整採用類名或是簡化類名,但是必須明確知道是什麼類,所有字母均使用小寫,在變數後加上_obj
$user_obj = new userAccount();
$pay_obj = new payOrder();
(5)類的命名:
使用英文名詞,以大寫字母作為詞的分隔,其他的字母均使用小寫,名詞的首個字母使用小寫,不使用底線
class userAccount{ ……}
(6)方法命名:
使用英文名詞、動詞,以底線作為單詞的分隔,所有字母均使用小寫
複製代碼 代碼如下:
class userAccount {
public $name_account=‘';
function is_account_ok(){
...
}
function add_account(){
...
}
}
關於對象屬性的命名同理!
2、PHP中函數、符號、運算寫作規範
(1)if語句大括弧{}規則:
將大括弧放置在關鍵詞後方
使用IF語句盡量使用大括弧
複製代碼 代碼如下:
if ( $condition ){
...
}else{
…
}
(2)、switch規則
每個case塊結束處必須加上break,而default總應該存在處理未知情況,例:
複製代碼 代碼如下:
switch( $condition ){
case 'user':
...
break;
case 'type':
...
break;
default:
...
break;
}
(3)、聲明定位規則
聲明代碼塊需要對齊,且初次使用變數時需要初始化
$tableName = '';
$databaseObject = '';
盡量不使用以下方式,例:
$tableName;
$accuntName = '';
$databaseObject = '';
html的form表單各個元素名稱與資料庫欄位盡量保持一致。
不要採用預設方法測試非零值,必須顯式測試,例:
if ( $name_pay_into != false ){
...
}else{
...
}
*儘可能使用單引號''而不是雙引號"",在需要加入變數或是寫sql語句除外。
*php檔案中儘可能不出現html語句,如果實在無法解決盡量少用,考慮到模板的相容性,
html檔案中儘可能避免出現php語句。
*通常每個方法只執行一項邏輯動作事務,所以對它們的命名應該清楚的說明它們是做什麼的:
用email_error_check()代替error_check()。
請注意命名不要與系統方法衝突。
3、PHP中各類注釋規範
/**
* 分頁預先處理函數
* sql SQL語句
* page 當前頁數
* limit 每頁顯示的數量
* maxs 查詢總數
*/
function limit($sql,$page='0',$limit=10,$maxs=''){ }
//使用者檢測
if( $check_obj->username( $username ) == true ){ … }
$user_name = $_GET[user]; //擷取使用者資訊
4、資料庫設計與操作規範
資料庫規範
資料庫名稱應該由概述項目內容的小寫英文名片語成,以底線分隔單詞,
避免跨平台時可能出現的大小寫錯誤。
資料表名稱應該由物件對象名稱的小寫英文名片語成(儘可能對應系統中的業務類名稱),以底線分隔單詞,避免跨平台時可能出現的大小寫錯誤。
資料表的欄位應避免使用varchar、text等不定長的類型,時間資訊的欄位使用int類型儲存。
查詢資料連線多表時各資源應該使用全名稱,即tableName.fieldName,而不是fieldName。
SQL語句應儘可能符合ansi92標準,避免使用特定資料庫對SQL語言的擴充特性。