變量及其命名

第十章  使用變量的通常事項 第十一章 變量名的力量php

1.變量定義與聲明安全

隱式聲明:使用一個未聲明的變量的時候,編譯器自動聲明該變量。(即不通過定義便可直接使用)函數

隱式聲明是不安全的,不建議使用。spa


2.變量初始化原則作用域

1)在聲明變量的時候初始化該變量。例如 $amount = 100;文檔

2)在靠近變量首次使用的地方(聲明)初始化該變量。input

糟糕實踐:編譯器

function Demo()it

{io

$age;

.......

.......


$workingYear = $age + 24;

.................................

}


最好使用:

function Demo()

{

$age;

$workingYear = $age + 24;

.......

.................................

}

3)在可能的狀況下,使用final關鍵字確保變量初始化後不會被改變。

4)注意計數器和累加器。在下一次使用做爲計數器或累加器的變量時候,不要忘記重置其值。

5)在類的構造函數裏初始化該類的數據成員。


3.做用域

變量的做用域是指變量在程序內的可見和可引用的範圍。

1)使變量引用局部化。

儘量把對某個變量的引用集中在一塊兒,有助於代碼閱讀。

2)減少做用域的通常原則:

a)在循環開始以前去初始化該循環裏使用的變量,而不是在該循環所屬的子程序的開始處初始化這些變量。

b)直到變量即將被使用時再爲其賦值。

c)把相關語句放到一塊兒。

d)若是有必要,將相關語句提取成單獨的子程序。

e)開始時採用嚴格的可見性,而後根據須要拓展變量的做用域。

4.變量名

爲變量命名是一項很重要的事情,爲變量命名時須要考慮的重要事情是,該名字要徹底、準確地描述出該變量所表明的事物。

(1)變量名中的計算值限定詞

計算值限定詞:即表示計算結果的詞,例如總額(total)、平均值(average)、最大值(max)等。

若是使用限定詞,記住把限定詞加到名字最後。

例如:expenseTotal、revenueAverage等

(2)特定類型數據命名

a)循環下標命名

通常而言,做爲循環下標的變量約定俗成的採用i,j,k等進行命名,然而,若是某個變量須要在循環完畢後使用,那麼應該取一個更有意義的名字。例如如下代碼:

$recordCount = 0;

while(!emptyDocument())//從文檔讀取記錄

{

$score[$recordCount] = GetScore();

$recordCount++;

}

$recordNum = $recordCount;//循環外使用


b)爲狀態變量命名

狀態變量用於描述程序的狀態。

一般的狀態變量命名爲flag,這是不提倡的,應該使用更加清晰的命名方式,例如使用常量和枚舉。例如:

define('INPUT_READY',1);

。。。

if(INPUT_READY)

{

do sth.......

}


c)爲臨時變量命名

臨時變量用於存儲計算的中間結果,做爲零時佔位符。

不要把零時變量僅僅命名爲temp,建議使用更明確的命名+temp做爲結尾,例如:input_temp.


d)爲布爾變量命名

<1>典型布爾變量名

done 表示某件事情已經完成。完成前設爲false,完成後設置爲true。

error 表示有錯誤發生。發生以前設置爲false,發生以後設置爲true。

found 用found表示某個值已經找到,找到以前爲false,找到以後設置爲true。

例如:在某個記錄集中查找某一條記錄。


<2>爲布爾變量賦予隱含"真/假"含義的名字。


<3>使用確定的布爾變量名。

不要使用否認意義的名字例如:notFound,notdone,等等。


e)爲常量命名

爲具名常量(就是有名稱的常量),應該是根據該常量所表示的含義,而不是該常量的數值來命名。例如:define("MAX_SIZE",1024);

5.命名規範

(鑑於php是弱類型語言,該處有待補充)