更新時(shí)間:2018年03月16日14時(shí)05分 來源:傳智播客 瀏覽次數(shù):
編碼規(guī)則采用常用規(guī)則就可,具體說哪一個(gè)好,哪一個(gè)不好也是不科學(xué)的,每種風(fēng)格都有各自的好處,這得看系統(tǒng),代碼怎樣容易閱讀這才是王道。
最基本要求
以標(biāo)準(zhǔn)計(jì)算機(jī)英文為藍(lán)本,杜絕一切拼音、或拼音英文混雜的命名方式。英語不好者,請(qǐng)借助網(wǎng)絡(luò)上的翻譯工具。
一、變量命名
(1)使用英文名詞、動(dòng)詞,以大寫字母作為單詞的分隔,其他的字母均使用小寫,單詞的首個(gè)字母使用小寫。如:
$repeatCount = '';
$delUserSql = '';
(2)變量命名如要用縮寫,只能使用項(xiàng)目中有據(jù)可查的英文縮寫方式,例如可以使用$data而不可使用$data1、$data2這樣容易產(chǎn)生混淆的形式,應(yīng)當(dāng)使用$articleData、$userData這樣一目了然容易理解的形式。
(3)除非特殊情況,一般不推薦使用下劃線。如:$repeat_count = '';(不推薦)
二、數(shù)組變量命名
使用英文名詞、動(dòng)詞,以大寫字母作為單詞的分隔,其他的字母均使用小寫,單詞的首個(gè)字母使用小寫,不使用下劃線,以字符串 Array 為后綴,例: $scopeArray = array(); $bookIdArray = array();
提示:
除非特殊情況,一般不推薦使用下劃線。如:$book_id_array = array();(不推薦)
三、全局變量
全局變量應(yīng)該帶前綴‘g’, 使用大寫字母作為詞的分隔,其他的字母均使用小寫。理由:知道一個(gè)變量的作用域是非常重要的。 例如: global $gLog;
四、全局常量命名
使用英文名詞、動(dòng)詞,所有字母都使用大寫,以下劃線'_'分隔每個(gè)單詞。這是命名全局常量的傳統(tǒng)。例如:
define( 'WEBSITE_NAME', '名稱' );
define( 'WEBSITE_URL', '地址' )
define("A_GLOBAL_CONSTANT", "Hello world!");
五、靜態(tài)變量命名
第一種寫法:靜態(tài)變量應(yīng)該帶前綴‘s’,使用大寫字母作為詞的分隔,其他的字母均使用小寫。理由:知道一個(gè)變量的作用域是非常重要的。 例如:
function test(){
static $sStatus = 0;
}
第二種寫法:使用英文名詞、動(dòng)詞,以大寫字母作為單詞的分隔,其他的字母均使用小寫,單詞的首個(gè)字母使用小寫,不使用下劃線,以字符串 Static 為后綴, 例如:
function getDirectoryFile(){
static $fileArrayStatic = '';
static $fileNumStatic = '';
...
}
function getDirectoryFile(){
static $fileArrayStatic = '';
static $fileNumStatic = '';
...
}
六、函數(shù)命名
函數(shù)名使用小寫字母、下劃線組合。如:get_client_ip().函數(shù)名字采用C語言的慣例,所有的字母使用小寫字母,使用'_'分割單詞。 這樣可以更易于區(qū)分相關(guān)聯(lián)的類名。
注意點(diǎn)1:不要把小括號(hào)和函數(shù)名緊貼在一起。 要用空格隔開它們。 如果小括號(hào)緊貼著函數(shù)名,二者很容易被看成是一體的。
例如:
function some_bloody_function () {
...
}
注意點(diǎn)2:除非必要,不要在Return返回語句中使用小括號(hào)。
七、類的命名規(guī)范
(1). 使用英文名詞,類文件采用駝峰式寫法。以大寫字母作為詞的分隔,其他的字母均使用小寫,名詞的首個(gè)字母使用大寫,不使用下劃線。
(2). 使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)
(3). 在為類命名前首先要知道它是什么。如果通過類名提供的線索,您還是想不起這個(gè)類是什么的話,那么您的設(shè)計(jì)是做得不夠好。
(4). 超過三個(gè)單詞組成的混合類名是容易造成系統(tǒng)各個(gè)實(shí)體間的混淆,請(qǐng)重新設(shè)計(jì)類名。
例如:
class UserAccount{
...
}
class PaintingOrder{
...
}
八、類文件命名規(guī)范
類的文件名與類的名字保持一致,包括大小寫以“ .class.php”作為文件的后綴。 如:MyDb類保存的文件名稱是MyDb.class.php,MySql類保存的文件名稱是MySql.class.php,Page類保存的文件名是Page.class.php,UserName類保存的文件名稱是:UserName.class.php 。
注意:正是由于類的文件名要與類的名字保持一致,所以一個(gè)php文件只能包含一個(gè)類定義編碼。
九、類屬性命名規(guī)范
使用英文名詞、動(dòng)詞,以大寫字母作為詞的分隔,其他的字母均使用小寫,對(duì)于類屬性為某個(gè)對(duì)象變量,則以字符串 Object 為后綴,普通屬性命名規(guī)范同變量的命名規(guī)范。如果是用于存儲(chǔ)對(duì)象的屬性,使用1個(gè)下劃線開始。例如:
public $tableName = '';
private $databaseObject = '';
public $_username = NULL;
十、類方法命名規(guī)范
類中的方法可自行定義如下兩種,
1)全部使用小寫用下劃線作為詞的分隔 (get_file_content),
2)采用駝峰法,即以大寫字母作為詞的分隔,其他的字母均使用小寫,
通常每個(gè)方法只執(zhí)行一項(xiàng)邏輯動(dòng)作事務(wù),所以對(duì)它們的命名應(yīng)該清楚的說明它們是做什么的:
如用checkEmailErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。這么做使功能和數(shù)據(jù)成為更可區(qū)分的物體。
十一、類方法參數(shù)命名
方法的參數(shù)的命名規(guī)范同變量的命名規(guī)范。
十二、類的實(shí)例對(duì)象的命名(對(duì)象變量命名)
類的實(shí)例對(duì)象的命名規(guī)范同變量的命名規(guī)范,只不過實(shí)例對(duì)象是以1個(gè)下劃線開頭的,同類中存儲(chǔ)對(duì)象的屬性的規(guī)范一樣。
這樣,無論是在類的內(nèi)部,還是類的外部,只要是以下劃線開頭的變量,那就是對(duì)象名。(jQuery對(duì)象的命名規(guī)范與此一致。國外通用。) 例:
$_name = new UserName();
有的公司要求是 "變量名" + "_obj",如:$name_obj;
而有的公司則使用類名稱為變量前綴,所有字母都使用大寫,以字符串_OBJECT 為后綴,例如:
$USERNAME_OBJECT = new UserName();$PAINTINGORDER_OBJECT = new PaintingOrder();
十三、數(shù)據(jù)庫命名
數(shù)據(jù)庫表名所有字母都使用小寫,使用'_'作為每個(gè)詞的分界,數(shù)據(jù)字段命名也與數(shù)據(jù)表命名相同.
例如:
[hide]
cz_goods_attr(商品屬性表)
cz_goods_type(商品類別表)
十四、模板文件名命名
所有字母都使用小寫,使用'_'作為每個(gè)詞的分界,這樣做的好處是方便平移到其他的系統(tǒng)平臺(tái)中,不會(huì)因?yàn)榇笮懚l(fā)生問題.
例如:
brand_add.html (品牌增加顯示模版文件)
brand_list.html(品牌展示模版文件)
十五、文件名的命名規(guī)范
文件名使用英文名詞、英文動(dòng)詞,以及下劃線,所有字母都使用小寫字母。例如: index.php、index_ad.html。
本文版權(quán)歸傳智播客PHP學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客PHP培訓(xùn)學(xué)院
首發(fā):http://php.itcast.cn/
北京校區(qū)