官术网_书友最值得收藏!

3.9 PHP編碼規范

視頻講解:光盤\TM\lx\3\27 PHP編碼規范.mp4

很多初學者對編碼規范不以為然,認為對程序開發沒有什么幫助,甚至因為要遵循規范而影響了學習和開發的進度。或者因為經過一段時間的使用,已經形成了自己的一套風格,所以不愿意去改變。這種想法是很危險的。

舉例說明,如今的Web開發,不再是一個人就可以全部完成的,尤其是一些大型的項目,要十幾人,甚至幾十人來共同完成。在開發過程中,難免會有新的開發人員參與進來,那么這個新的開發人員在閱讀前任留下的代碼時,就會有問題了——這個變量起到什么作用?那個函數實現什么功能?TmpClass類在哪里被使用到了……諸如此類。這時,編碼規范的重要性就體現出來了。

3.9.1 什么是編碼規范

以PHP開發為例,編碼規范就是融合了開發人員長時間積累下來的經驗,形成了一種良好統一的編程風格,這種良好統一的編程風格會在團隊開發或二次開發時起到事半功倍的效果。編碼規范是一種總結性的說明和介紹,并不是強制性的規則。從項目長遠的發展以及團隊效率來考慮,遵守編碼規范是十分必要的。

遵守編碼規范的好處如下:

編碼規范是對團隊開發成員的基本要求。

開發人員可以了解任何代碼,理清程序的狀況。

提高程序的可讀性,有利于相關設計人員交流,提高軟件質量。

防止新接觸PHP的人出于節省時間的需要,自創一套風格并養成終生的習慣。

有助于程序的維護,降低軟件成本。

有利于團隊管理,實現團隊后備資源的可重用。

3.9.2 PHP書寫規則

1.縮進

使用制表符(Tab鍵)縮進,縮進單位為4個空格左右。如果開發工具的種類多樣,則需要在開發工具中統一設置。

2.大括號{}

有兩種大括號放置規則是可以使用的:

將大括號放到關鍵字的下方、同列。

        if ($expr)
        {
            …
        }

首括號與關鍵詞同行,尾括號與關鍵字同列。

        if ($expr){
            …
        }

兩種方式并無太大差別,但多數人都習慣選擇第一種方式。

3.關鍵字、小括號、函數、運算符

盡量不要把小括號和關鍵字緊貼在一起,要用空格隔開它們。如:

        if($expr){                   //if和“(”之間有一個空格
            …
        }

小括號和函數要緊貼在一起。以便區分關鍵字和函數。如:

        round($num) //round和“(”之間沒有空格

運算符與兩邊的變量或表達式要有一個空格(字符連接運算符“.”除外)。如:

        while($boo==true){            //$boo和“==”, true和“==”之間都有一個空格
            …
        }

當代碼段較大時,上、下應當加入空白行,兩個代碼塊之間只使用一個空行,禁止使用多行。

盡量不要在return返回語句中使用小括號。如:

        return 1;                      //除非是必要,否則不需要使用小括號

3.9.3 PHP命名規則

就一般約定而言,類、函數和變量的名字應該能夠讓代碼閱讀者輕易地知道這些代碼的作用,應該避免使用模棱兩可的命名。

1.類命名

使用大寫字母作為詞的分隔,其他的字母均使用小寫。

名字的首字母使用大寫。

不要使用下劃線(_)。

如:Name、SuperMan、BigClassObject。

2.類屬性命名

屬性命名應該以字符m為前綴。

前綴m后采用與類命名一致的規則。

m總是在名字的開頭起修飾作用,就像以r開頭表示引用一樣。

如:mValue、mLongString等。

3.方法命名

方法的作用都是執行一個動作,達到一個目的。所以名稱應該說明方法是做什么。一般名稱的前綴和后綴都有一定的規律,如:Is(判斷)、Get(得到)、Set(設置)。

方法的命名規范和類命名是一致的。如:

        class StartStudy{               //設置類
            $mLessonOne="";             //設置類屬性
            $mLessonTwo="";             //設置類屬性
            function GetLessonOne(){    //定義方法,得到屬性mLessonOne的值
            …
            }
        }

4.方法中參數命名

第一個字符使用小寫字母。

在首字符后的所有字符都按照類命名規則首字符大寫。

如以下代碼:

        class EchoAnyWord{
            function EchoWord($firstWord, $secondWord){
            …
            }
        }

5.變量命名

所有字母都使用小寫。

使用“_”作為每個詞的分界。

如:$msg_error、$chk_pwd等。

6.引用變量

引用變量要帶有r前綴。如:

        class Example{
            $mExam  ="";
            function SetExam(&$rExam){
                …
            }
            function &rGetExam(){
                …
            }
        }

7.全局變量

全局變量應該帶前綴g。如:global $gTest、global $g。

8.常量/全局常量

常量/全局常量應該全部使用大寫字母,單詞之間用“_”來分隔。如:

        define('DEFAULT_NUM_AVG',90);
        define('DEFAULT_NUM_SUM',500);

9.靜態變量

靜態變量應該帶前綴s。如:

        static $sStatus = 1;

10.函數命名

所有的名稱都使用小寫字母,多個單詞使用“_”來分隔。如:

        function this_good_idea(){
            …
        }

以上各種命名規則可以組合一起來使用,如:

        class OtherExample{
            $msValue="";             //該參數既是類屬性,又是靜態變量
        }

說明

這里介紹的只是一些簡單的書寫和名稱規則,如果想了解更多的編碼規范,可以參考Zend_Framework中文參考手冊。

主站蜘蛛池模板: 浏阳市| 宁津县| 合阳县| 建瓯市| 镇沅| 高平市| 宁陵县| 永兴县| 壤塘县| 万盛区| 礼泉县| 峨边| 霍州市| 库伦旗| 昂仁县| 台东县| 枝江市| 枣庄市| 化德县| 正安县| 华蓥市| 平阴县| 拜泉县| 区。| 白朗县| 长乐市| 探索| 宜黄县| 玉门市| 滕州市| 体育| 皋兰县| 丹东市| 平利县| 武安市| 漳州市| 兴山县| 闽侯县| 将乐县| 长顺县| 西乡县|