《PHP實例:培養自己的php編碼規范》要點:
本文介紹了PHP實例:培養自己的php編碼規范,希望對您有用。如果有疑問,可以聯系我們。
為什么我們要培養本身的編碼規范?PHP實例
我們寫代碼的時候,一個好的編碼規范,對我們來說能夠起到很多意向不到的效果.至少會有一下的好處:
PHP實例
1、提高我們的編碼效率.整齊劃一的代碼便利我們進行復制粘貼嘛!
2、提高代碼的可讀性.
3、顯示我們專業.別人看到了我們的代碼,發現整個代碼的書寫流程都整齊劃一,瞬間逼格就上去了!
4、便利團隊協同工作.大家使用同一的規范,這樣就消除了五花八分的書寫方式,同一協調!PHP實例
編碼規范包括兩大塊,代碼規范和注釋規范PHP實例
其實我們所寫的php腳本,其實也就是由兩大塊組成的,即對代碼的書寫、對代碼的注釋!不同的框架,甚至不同的公司,對這方面都會有所不同,這里只是已將之言,僅僅是對本身的書寫規范進行一個總結!希望能對其他的朋友以啟示PHP實例
1、代碼的書寫規范PHP實例
文件夾的命名:
PHP實例
文件夾同一使用小寫字母.如存放控制器的文件夾,直接命名為controller即可PHP實例
文件的命名:
PHP實例
如果是類文件的話,那么文件的命名應該同類名稱堅持一致,統一使用大駝峰.如Session.class.php , 對應類名稱為Session,
如果是普通的工具腳本,那么統一使用小駝峰,如common.phpPHP實例
類名稱的命名:
PHP實例
類名稱同一使用大駝峰,Cookie類PHP實例
辦法名的命名:
PHP實例
統一使用小駝峰,一般使用 動詞 + 名次 的形式來描述該辦法的功能,如sendMessage,發送短信.
在面向對象中,遵循同樣的規則,但是個別地方有所區別:
PHP實例
public getUserName() protected _getTotalAmount() private _setBlanceAmount()
變量的命名規范:
PHP實例
關于變量,我們必要多說幾點:
1、無論在面向對象還是非面向對象的語法中,變量統一使用小駝峰,如:$workYears.
但是在面向對象中又有所不同,public 、 protected 、 private ,protected或者private屬性的時候,前面加上了 _ 作為區別PHP實例
public $startPosition = 1; protected $_salaryAmount =1000; private $_sex = 'formale';
2、如果是常量的話,統一使用大寫,中間使用下劃線進行分割.PHP實例
define('CURRENT_SCRIPT', 'index.php'); const TRANSACTION_TYPE = 'income';
3、全局變量,使用大駝峰,前綴加上 _ ,所有的單詞首字母大寫.因為知道一個變量的作用域是非常重要的,所以局部變量和全局變量應該很明顯的進行分開!PHP實例
$_System_Config;PHP實例
$_Root_Path;
PHP實例
縮進符
PHP實例
關于編碼的縮進符號,我們統一使用制表符縮進!也許有的人會問為什么不適用空格縮進的呢?
原因很簡單,大部分的編纂器都支持制表符等于多少個空格,而使用空格就沒得調了!PHP實例
運算符號
PHP實例
所有的兩元運算符號,都應該前后使用空格進行
PHP實例
$name = 'zero'; $age > 18 ? 'adult' : 'children';
常見的流程語句規劃
PHP實例
我們約定,所有的流程語句的花括號都單獨占據一行.理由:如果遇到較為復雜的業務邏輯,花括號會出現很多的嵌套,這樣一來我們會混淆個個對應的花括號!
PHP實例
1、分支語句PHP實例
if($age >= 18 && $age <= 30) { echo 'young man'; } else if($age > 30 && $age <= 60) { echo 'middle aged'; } else { echo 'old man'; } //下面這段代碼高手我們一個問題,在if語句中,即使在可以不要花括號的情況下,花括號也是要寫上的 if($age > 60) { echo 'I am very old'; } switch($status) { case 'forbiden': echo 'login forbidden'; break; case 'normal': echo 'login in'; break; default: echo 'status is wrong' : break; }
2、循環語句PHP實例
while($condition) { statesments......; } foreach($arrayList as $arrayKey => $arrayItem) { states......; } do { statements......; } while($condition) for($start; condition; changenumber) { statements......; }
2、注釋的書寫規范PHP實例
很多人說好的代碼是不需要注釋的,其實,個人認為這是一句很扯淡的話(也可能他是對的,除非整個團隊就他一個人,他經辦了一切,不用看別人的代碼).PHP實例
個人的觀點是:多寫注釋,無論是對團隊的其他人,還是對本身都是非常友好的!PHP實例
根據個人的經驗來看,注釋至少有以下幾個作用:
PHP實例
1、有利于提高代碼的可讀性,畢竟讀你的注釋要比讀你的代碼要容易的多!
2、有利于規劃自己的代碼布局!之所以這么說,是因為和代碼注釋的種類有關.“有利于代碼的布局”,這種看著有點懸的事,光說是說不明白的,我們需要實實在在的例子做支撐!
3、由于我們的注釋規范是依照phpdocumentor的要求,所以通過這個工具,還可以生成一份對代碼的總體說明,相當于一個使用說明書!gPHP實例
代碼注釋的種類
PHP實例
1、塊注釋
塊注釋,個人認為主要用在了三個地方.對php腳本的描述、對一個大的功能模塊的描述、在一行之內不能寫完注釋的時候,也應該放在塊注釋中PHP實例
2、行注釋
行注釋,個人認為他是配合塊注釋進行工作的!一般用于描述一個大的功能模塊的具體細節!PHP實例
實戰的案例
PHP實例
關于phpdocumentor語法的具體使用細節,這里就不多說了,官網上說的再清楚不過了PHP實例
PHP實例
從上面的例子中我們可以看一下代碼的布局大致是怎么回事,但是還必要我們在實踐中慢慢摸索PHP實例
下面附上一些php的編程規范,給大家參考下PHP實例
一、文件標記:PHP實例
?1.所有php文件,其代碼標記均采用完整php標簽,不建議使用短標簽(短標簽容易和xml混淆,php從5.4開始默認不支持短標記).PHP實例
?2.對于只有php的代碼文件,建議省略結尾處的‘?>'.這是為了防止多余的空格或其他字符影??????? 響到代碼.PHP實例
二、文件和目錄命名PHP實例
?1.程序文件名和目錄名均采用有意義的英文命名,不使用拼音和無意義的字母,只允許出現字母、數字、下劃線和中劃線字? 符,同時必需以‘.php'結尾(模板文件除外),多個詞間使用駝峰命名法.PHP實例
??? 例://類統一采用:DemoTest.class.phpPHP實例
????????? //接口統一采用:DemoTest.interface.phpPHP實例
????????? //其他依照各自的方式:demoTest.{style}.phpPHP實例
三、文件目錄結構PHP實例
規范的目錄結構有助于團隊協作開發和后期維護.PHP實例
――app??????????? //獨立的應用PHP實例
――class????????? //單個的類文件,共用的類文件PHP實例
――conf/inc??? //配置文件或目錄PHP實例
――data????????? //數據文件或目錄PHP實例
――doc?????????? //程序相關文檔PHP實例
――htdocs?????? //document_rootPHP實例
――images?????? //所有圖片文件存放路徑PHP實例
――css??????????? //css文件PHP實例
――js?????????????? //js文件PHP實例
――lib????????????? //共用類庫PHP實例
――template??? //模板文件PHP實例
――tmp??????????? //臨時文件目錄PHP實例
――cache??? //緩存文件PHP實例
――session? //SESSION文件PHP實例
――template_c??? //編譯后的模板文件PHP實例
――otherPHP實例
――upload????? //上傳文件PHP實例
――manage??? //后臺管理文件目錄PHP實例
四、命名規范PHP實例
1.變量命名:php中變量區分大小寫,一個有效的變量名由數字、字母或下劃線開頭,后面跟任意數量的字母、數字、下劃線.PHP實例
??? a)程序整體以駝峰命名法,以小寫字母開始,同時命名要有意義.(function displayName())PHP實例
??? b)PHP全局變量鍵值兩邊都有‘_',中間用駝峰命名法命名.($_GLOBAL['_beginTime_'])PHP實例
??? c)普通變量整體采用駝峰命名法,建議在變量前加表示類型的前綴.不確定類型的以大寫字符開頭.PHP實例
??? d)函數名要盡量有意義,盡量縮寫.PHP實例
2.類及接口命名:PHP實例
??? a)以大寫字母開頭.PHP實例
??? b)多個單詞組成的變量名,單詞之間不用間隔,各個單詞首字母大寫.PHP實例
??? c)類名與類文件名堅持一致.PHP實例
??? d)程序中所有的類名唯一.PHP實例
??? e)抽象類應以Abstract開頭.PHP實例
??? 接口命名規則:PHP實例
??????? i)采用和類相同的命名規則,但在其命名前加‘i'字符,表示接口.PHP實例
??????? ii)盡量堅持和實現它的類名一致.PHP實例
3.數據庫命名:在數據庫相關命名中,一律不出現大寫.PHP實例
??? a)表名均使用小寫字母.PHP實例
??? b)表名使用同一的前綴且前綴不能為空.PHP實例
??? c)對于多個單詞組成的表名,使用‘_'間隔.PHP實例
??? d)表字段命名規則.PHP實例
??????????? i)全部使用小寫字母.PHP實例
??????????? ii)多個單詞不用下劃線分割.PHP實例
??????????? iii)給常用字段加上表名首字母做前綴.PHP實例
??????????? iv)避免使用關鍵字和保存字.PHP實例
五、注釋規范PHP實例
1.程序注釋:寫在代碼前面而不是后面,單行代碼依照習慣寫在代碼尾部;大段注釋采用/**/的方式,通常為文件或函數的頂部,代碼內部使用'//';注釋不宜太多;代碼注釋應該描述為什么而不是做什么,給代碼閱讀者提供最主要的信息.PHP實例
2.文件注釋:文件注釋一般放在文件的頂部,包含本程序的描述、作者、項目名稱、文件名稱、時間日期、版本信息、重要的使用說明(類的調用,注意事項等).版本更改要修改版本號,并加上mofify注釋.PHP實例
3.類和接口注釋:依照一般的習慣,一個文件只包含一個類.PHP實例
4.辦法和函數注釋:辦法和函數的注釋寫在前面,通常需要表明信息的主要可見性、參數類型和返回值類型.PHP實例
??? /**PHP實例
??? *??? 連接數據庫PHP實例
??? *??? @param string $dbhost??? 數據庫服務器地址PHP實例
??? *??? @param string $dbuser??? 數據庫用戶名PHP實例
??? *??? @param string $dbpwd??? 數據庫暗碼PHP實例
??? */PHP實例
六、代碼風格PHP實例
1.縮進和空格:使用4個空格做為縮進,不使用Tab鍵;變量賦值時,等號兩邊留出空格.($url = '$_GET['url']';)PHP實例
2.語句斷行:盡量保證程序語句一行即一句;盡量不要使一行的代碼過長,80個字符以內;如果一行的代碼太長,請使用類似于‘.='方式斷行連接;執行數據庫的sql語句操作時,盡量不要再函數內寫sql語句,而先用變量定義sql語句,然后在執行操作的函數中調用定義的變量.PHP實例
3.更好的習慣:在代碼中使用下面列舉的辦法,可以使代碼更優雅.PHP實例
??????? 1):多使用php中已經存在的常量,而不要本身定義.PHP實例
??????????? 例://換行PHP實例
????????????????? echo $msg."\r\n";PHP實例
????????????????? echo $msg,PHP_EOL;PHP實例
??????????????? php中PHP_EOL是一個預定義常量,表示一行結束,隨著所使用系統不同,使用PHP_EOL代碼可移植性更高PHP實例
??????? 2):在echo中使用逗號做連接符,比用‘.'做連接符代碼更美觀.PHP實例
??????? 3):單引號的效率高于雙引號,但二者在使用上有區別,學會使用printf函數.PHP實例
??????????? 例://echoPHP實例
??????????????? echo? '每個'.$scholl.'大約有'.floor($avg).'個學生';PHP實例
????????????????? //printfPHP實例
?????????????? $format = '每個%s大于有$d個學生';PHP實例
??????????????? printf($format,$school,$avg);PHP實例
??????? 4)? :詳細的注釋PHP實例
??????? 5):不要 濫用語法糖,語法糖便是語言中的潛規則,即不具備普遍代表性的語法.PHP實例
歡迎參與《PHP實例:培養自己的php編碼規范》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8642.html