第十章 使用變量的通常事項 第十一章 變量名的力量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是弱類型語言,該處有待補充)