PHP教程:PHP編碼書(shū)寫(xiě)規(guī)范_PHP教程
推薦:PHP中addcslashes函數(shù)與stripcslashes的用法今天在寫(xiě)一個(gè)網(wǎng)站的英文版時(shí),寫(xiě)完后填加英文資料,我隨便填寫(xiě)時(shí)一點(diǎn)問(wèn)題沒(méi)有,但每當(dāng)填加指定的內(nèi)容時(shí)卻填加不上,也不報(bào)錯(cuò),我查看了數(shù)據(jù)庫(kù),發(fā)現(xiàn)這個(gè)字段用的是“TEXT”數(shù)據(jù)數(shù)型,
1 文件結(jié)構(gòu)
| |――images |――include |――parameter |――config |――function |――index |
images存放圖片文件,include中是系統(tǒng)是要引用的文件,一般在parameter中存放參數(shù)文件,config中存放配置文件,function中存放方法文件,如javascript的方法等,并按功能模塊的分類(lèi),將各功能的類(lèi)也放入其中。
2 文件名
文件夾命名一般采用英文,長(zhǎng)度一般不超過(guò)20個(gè)字符,命名采用小寫(xiě)字母。除特殊情況才使用中文拼音,一些常見(jiàn)的文件夾命名如:images(存放圖形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript腳本),inc(存放include文件),link(存放友情鏈接),media(存放多媒體文件)等。文件名稱統(tǒng)一用小寫(xiě)的英文字母、數(shù)字和下劃線的組合。
3 源文件的編碼規(guī)范
3.1 開(kāi)頭注釋
所有的源文件都應(yīng)該在開(kāi)頭有一個(gè)C語(yǔ)言風(fēng)格的注釋?zhuān)渲辛谐鲱?lèi)名、功能、版本信息、日期、作者和版權(quán)聲明:
/* * 類(lèi)名 * 功能 * 版本 * 日期 * 作者 * 版權(quán) */ |
如果對(duì)文件進(jìn)行了修改,應(yīng)該在文件頭中說(shuō)明修改目的、修改日期、修改人,并變更文件的版本信息;如果修改問(wèn)文件的一部分,則在文件中進(jìn)行注釋即可,并且標(biāo)識(shí)出修改部分的起止位置
……
/* * 修改目的 * 修改日期 * 修改人 * 版本 */ |
……
修改起始
……
……
修改結(jié)束
……
3.2 引入語(yǔ)句
引入語(yǔ)句應(yīng)該位于文件的頭部,并在引入時(shí)說(shuō)明引入文件的作用。例如:
//數(shù)據(jù)庫(kù)操作類(lèi) require( “db.php” ); |
3.3 類(lèi)的聲明
1 類(lèi)文檔注釋(/**……*/) 該注釋中所需包含的信息,參見(jiàn)"文檔注釋"
2 類(lèi)的聲明
3 類(lèi)實(shí)現(xiàn)的注釋(/*……*/)如果有必要的話 該注釋?xiě)?yīng)包含任何有關(guān)整個(gè)類(lèi)的信息,而這些信息又不適合作為類(lèi)文檔注釋。
4 類(lèi)的(靜態(tài))變量 首先是類(lèi)的公共變量,隨后是保護(hù)變量,再后是包一級(jí)別的變量(沒(méi)有訪問(wèn)修飾符,access modifier),最后是私有變量。
5 實(shí)例變量 首先是公共級(jí)別的,隨后是保護(hù)級(jí)別的,再后是包一級(jí)別的(沒(méi)有訪問(wèn)修飾符),最后是私有級(jí)別的。
6 構(gòu)造器
7 方法 這些方法應(yīng)該按功能,而非作用域或訪問(wèn)權(quán)限,分組。例如,一個(gè)私有的類(lèi)方法可以置于兩個(gè)公有的實(shí)例方法之間。其目的是為了更便于閱讀和理解代碼
3.4 縮進(jìn)排版
4個(gè)空格常被作為縮進(jìn)排版的一個(gè)單位。縮進(jìn)的確切解釋并未詳細(xì)指定(空格 vs. 制表符)。一個(gè)制表符等于8個(gè)空格(而非4個(gè)),所以在某些編輯器中,需要特別指定一下制表符的長(zhǎng)度為4(UltraEdit),而在某些編輯器中,會(huì)將制表符轉(zhuǎn)換為空格
3.5 行長(zhǎng)度
盡量避免一行的長(zhǎng)度超過(guò)80個(gè)字符,因?yàn)楹芏嘟K端和工具不能很好處理之。
3.6 換行
當(dāng)一個(gè)表達(dá)式無(wú)法容納在一行內(nèi)時(shí),可以依據(jù)如下一般規(guī)則斷開(kāi)之:
- 在一個(gè)逗號(hào)后面斷開(kāi)
- 在一個(gè)操作符前面斷開(kāi)
- 寧可選擇較高級(jí)別(higher-level)的斷開(kāi),而非較低級(jí)別(lower-level)的斷開(kāi)
- 新的一行應(yīng)該與上一行同一級(jí)別表達(dá)式的開(kāi)頭處對(duì)齊
- 如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)8個(gè)空格。
以下是斷開(kāi)方法調(diào)用的一些例子:
someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); $var = someMethod1(longExpression1, |
以下是兩個(gè)斷開(kāi)算術(shù)表達(dá)式的例子。前者更好,因?yàn)閿嚅_(kāi)處位于括號(hào)表達(dá)式的外邊,這是個(gè)較高級(jí)別的斷開(kāi)。
$longName1 = $longName2 * ($longName3 $longName4 - $longName5) 4 * $longname6; //使用這種縮進(jìn)方式 $longName1 = $longName2 * ($longName3 $longName4 |
以下是兩個(gè)縮進(jìn)方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進(jìn)方式將會(huì)使第二行和第三行移得很靠右,所以代之以縮進(jìn)8個(gè)空格
//傳統(tǒng)的縮進(jìn)方式 function someMethod($anArg, $anotherArg, $yetAnotherArg, $andStillAnother) { ... } //利用8個(gè)連續(xù)空格避免過(guò)渡的縮進(jìn) |
if語(yǔ)句的換行通常使用8個(gè)空格的規(guī)則,因?yàn)槌R?guī)縮進(jìn)(4個(gè)空格)會(huì)使語(yǔ)句體看起來(lái)比較費(fèi)勁。比如:
//不要使用這種縮進(jìn)方式 if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { //錯(cuò)誤的換行方式,沒(méi)有進(jìn)行縮進(jìn) doSomethingAboutIt(); //條件與此句對(duì)齊,造成閱讀程序時(shí)很可能漏過(guò)此句 } //應(yīng)該使用這種縮進(jìn)方式 //或者這樣的縮進(jìn)方式也可以 |
這里有三種可行的方法用于處理三元運(yùn)算表達(dá)式:
$alpha = (aLongBooleanExpression) ? beta : gamma; $alpha = (aLongBooleanExpression) ? beta $alpha = (aLongBooleanExpression) |
分享:PHP.MVC的模板標(biāo)簽系統(tǒng)PHP.MVC的模板標(biāo)簽系統(tǒng)(PhpMVC_Tags)現(xiàn)在提供了3種類(lèi)型的標(biāo)簽:包含指令,聲明和表達(dá)式. 包含指令能讓我們將內(nèi)容分隔為許多模塊,比如:頁(yè)眉,頁(yè)腳或者內(nèi)容.包含的頁(yè)面可以是HTML,或者其他標(biāo)簽?zāi)0屙?yè)
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 用PHP操縱Oracle的LOB類(lèi)型的數(shù)據(jù)
- 創(chuàng)建論壇專(zhuān)業(yè)知識(shí)庫(kù) HDWiki(For Discuz!)V1.0正式版發(fā)布
- php gzip壓縮輸出的實(shí)現(xiàn)方法
- Windows IIS環(huán)境下安裝和配置PHP開(kāi)發(fā)環(huán)境
- php調(diào)用MySQL存儲(chǔ)過(guò)程的方法集合
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 解析PHP跳出循環(huán)的方法以及continue、break、exit的區(qū)別介紹
- PHP實(shí)現(xiàn)靜態(tài)發(fā)布的方法淺談
- 解析PHP程序編譯中常見(jiàn)錯(cuò)誤信息
- 一個(gè)簡(jiǎn)單的PHP框架實(shí)現(xiàn)方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-PHP教程:PHP編碼書(shū)寫(xiě)規(guī)范。