第十章 使用变量的通常事项 第十一章 变量名的力量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是弱类型语言,该处有待补充)