国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

理解學(xué)習(xí)PHP編碼規(guī)范之源文件的編碼規(guī)范

2024-05-04 23:03:14
字體:
供稿:網(wǎng)友
開頭注釋

所有的源文件都應(yīng)該在開頭有一個c語言風(fēng)格的注釋,其中列出類名、功能、版本信息、日期、作者和版權(quán)聲明:


/*
 * 類名
 * 功能
 * 版本
 * 日期
 * 作者
 * 版權(quán)
 */

如果對文件進(jìn)行了修改,應(yīng)該在文件頭中說明修改目的、修改日期、修改人,并變更文件的版本信息;如果修改問文件的一部分,則在文件中進(jìn)行注釋即可,并且標(biāo)識出修改部分的起止位置

……

/*
 * 修改目的
 * 修改日期
 * 修改人
 * 版本
 */

……

修改起始

……

……

修改結(jié)束

……

3.2 引入語句

引入語句應(yīng)該位于文件的頭部,并在引入時說明引入文件的作用。例如:

//數(shù)據(jù)庫操作類
require( “db.php” );

3.3 類的聲明

1 類文檔注釋(/**……*/) 該注釋中所需包含的信息,參見"文檔注釋"
2 類的聲明
3 類實現(xiàn)的注釋(/*……*/)如果有必要的話 該注釋應(yīng)包含任何有關(guān)整個類的信息,而這些信息又不適合作為類文檔注釋。
4 類的(靜態(tài))變量 首先是類的公共變量,隨后是保護(hù)變量,再后是包一級別的變量(沒有訪問修飾符,access modifier),最后是私有變量。
5 實例變量 首先是公共級別的,隨后是保護(hù)級別的,再后是包一級別的(沒有訪問修飾符),最后是私有級別的。
6 構(gòu)造器
7 方法 這些方法應(yīng)該按功能,而非作用域或訪問權(quán)限,分組。例如,一個私有的類方法可以置于兩個公有的實例方法之間。其目的是為了更便于閱讀和理解代碼

3.4 縮進(jìn)排版

4個空格常被作為縮進(jìn)排版的一個單位。縮進(jìn)的確切解釋并未詳細(xì)指定(空格 vs. 制表符)。一個制表符等于8個空格(而非4個),所以在某些編輯器中,需要特別指定一下制表符的長度為4(ultraedit),而在某些編輯器中,會將制表符轉(zhuǎn)換為空格

3.5 行長度

盡量避免一行的長度超過80個字符,因為很多終端和工具不能很好處理之。

3.6 換行

當(dāng)一個表達(dá)式無法容納在一行內(nèi)時,可以依據(jù)如下一般規(guī)則斷開之:

- 在一個逗號后面斷開
- 在一個操作符前面斷開
- 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開
- 新的一行應(yīng)該與上一行同一級別表達(dá)式的開頭處對齊
- 如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)8個空格。

以下是斷開方法調(diào)用的一些例子:


somemethod(longexpression1, longexpression2, longexpression3,
             longexpression4, longexpression5);

$var = somemethod1(longexpression1,
                 somemethod2(longexpression2,
                              longexpression3));

以下是兩個斷開算術(shù)表達(dá)式的例子。前者更好,因為斷開處位于括號表達(dá)式的外邊,這是個較高級別的斷開。


$longname1 = $longname2 * ($longname3 + $longname4 - $longname5)
            + 4 * $longname6; //使用這種縮進(jìn)方式

$longname1 = $longname2 * ($longname3 + $longname4
                   - $longname5) + 4 * $longname6; //避免這種

以下是兩個縮進(jìn)方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進(jìn)方式將會使第二行和第三行移得很靠右,所以代之以縮進(jìn)8個空格


//傳統(tǒng)的縮進(jìn)方式
function somemethod($anarg, $anotherarg, $yetanotherarg,
          $andstillanother) {
...
}

//利用8個連續(xù)空格避免過渡的縮進(jìn)
function horkinglongmethodname($anarg,
     $anotherarg, $yetanotherarg,
     $andstillanother) {
...
}

if語句的換行通常使用8個空格的規(guī)則,因為常規(guī)縮進(jìn)(4個空格)會使語句體看起來比較費勁。比如:


//不要使用這種縮進(jìn)方式
if ((condition1 && condition2)
  || (condition3 && condition4)
  ||!(condition5 && condition6)) { //錯誤的換行方式,沒有進(jìn)行縮進(jìn)
  dosomethingaboutit(); //條件與此句對齊,造成閱讀程序時很可能漏過此句
}

//應(yīng)該使用這種縮進(jìn)方式
if ((condition1 && condition2)
    || (condition3 && condition4)
    ||!(condition5 && condition6)) {
  dosomethingaboutit();
}

//或者這樣的縮進(jìn)方式也可以
if ((condition1 && condition2) || (condition3 && condition4)
        ||!(condition5 && condition6)) {
  dosomethingaboutit();
}

這里有三種可行的方法用于處理三元運算表達(dá)式:

$alpha = (alongbooleanexpression) ? beta : gamma;

$alpha = (alongbooleanexpression) ? beta
                 : gamma;

$alpha = (alongbooleanexpression)
    ? beta
    : gamma;

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 忻州市| 三台县| 繁昌县| 叙永县| 民丰县| 沙河市| 大英县| 安龙县| 客服| 集贤县| 承德县| 阿尔山市| 禄丰县| 株洲市| 伊川县| 隆回县| 沿河| 荣昌县| 紫金县| 扎囊县| 尉氏县| 资兴市| 新津县| 临高县| 平昌县| 达拉特旗| 泰安市| 无锡市| 大庆市| 托克逊县| 玉田县| 涡阳县| 浪卡子县| 富宁县| 祥云县| 开化县| 凤凰县| 仙桃市| 八宿县| 秦皇岛市| 江都市|