
2.1 PHP标记及注释
2.1.1 PHP标记
所谓标记,就是为了便于与其他内容区分所使用的一种特殊标记,PHP共支持4种标记风格。
1.XML标记风格
XML标记风格如下所示。

从上面的代码中可以看到,XML标记风格是以“<?php”开始,以“?>”结尾的,中间包含的代码就是PHP语言代码。这是PHP最常用的标记风格,推荐使用这种标记风格,因为它不能被服务器禁用,在XML、XHTML中都可以使用。
2.脚本标记风格
脚本标记风格如下所示。

脚本标记风格是以“<script …">”开头,以“</script>”结尾。
3.简短标记风格
简短标记风格如下所示。

如果想使用这种标记风格开发PHP程序,则必须保证PHP配置文件“php.ini”中的“short_open_tag”选项值设置为“on”。
4.ASP标记风格
ASP标记风格如下所示。

如果想使用这种标记风格开发PHP程序,则必须保证PHP配置文件“php.ini”中的“asp_tags”设置为“on”。
2.1.2 编码规范
以PHP开发为例,编码规范就是融合了开发人员长时间积累下来的经验,形成一种良好统一的编程风格,这种良好统一的编程风格会在团队开发或二次开发时起到事半功倍的效果。编码规范是一种总结性的说明和介绍,并不是强制性的规则。从项目长远的发展以及团队效率来考虑,遵守编码规范是十分必要的。
1.书写规范
(1)缩进
使用制表符(<Tab>键)缩进,缩进单位为4个空格左右。如果开发工具的种类多样,则需要在开发工具中统一设置。
(2)大括号{}
有两种大括号放置规则是可以使用的。
将大括号放到关键字的下方、同列。

首括号与关键词同行,尾括号与关键字同列。

两种方式并无太大差别,但多数人都习惯选择第一种方式。
(3)关键字、小括号、函数、运算符
不要把小括号和关键字紧贴在一起,要用空格隔开它们。如:

小括号和函数要紧贴在一起,以便区分关键字和函数。如:

运算符与两边的变量或表达式要有一个空格(字符连接运算符“.”除外)。如:

当代码段较大时,上、下应当加入空白行,两个代码块之间只使用一个空行,禁止使用多行。
尽量不要在return返回语句中使用小括号。如:

2.命名规范
使用良好的命名也是重要的编程习惯,描述性强的名称让代码更加容易阅读、理解和维护。命名遵循的基本原则是:以标准计算机英文为蓝本,杜绝一切拼音或者拼音英文混杂的命名方式,建议应用语义化的方式命名。
(1)类命名
使用大写字母作为词的分隔,其他的字母均使用小写。
名字的首字母使用大写。
不要使用下划线(“_”)。
如:Name、SuperMan、BigClassObject。
(2)类属性命名
属性命名应该以字符“m”为前缀。
前缀“m”后采用与类命名一致的规则。
“m”总是在名字的开头起修饰作用,就像以“r”开头表示引用一样。
如:mValue、mLongString等。
(3)方法命名
方法的作用都是执行一个动作,达到一个目的。所以名称应该说明方法是做什么。一般名称的前缀和后缀都有一定的规律,如:Is(判断)、Get(得到)、Set(设置)。
方法的命名规范和类命名是一致的。如:

(4)方法中参数命名
第一个字符使用小写字母。
在首字符后的所有字符都按照类命名规则首字符大写。
如:

(5)变量命名
所有字母都使用小写。
使用“_”作为每个词的分界。
如:$msg_error、$chk_pwd等。
(6)引用变量
引用变量要带有“r”前缀。如:

(7)全局变量
全局变量应该带前缀“g”。如:global=$gTest、global=$g。
(8)常量/全局常量
常量/全局常量,应该全部使用大写字母,单词之间用“_”来分隔。如:

(9)静态变量
静态变量应该带前缀“s”。如:

(10)函数命名
所有的名称都使用小写字母,多个单词使用“_”来分割。如:

以上的各种命名规则,可以组合一起来使用。如:

2.1.3 代码注释
注释可以理解为代码中的解释和说明,是程序中不可缺少的一个重要元素。使用注释不仅能够提高程序的可读性,而且还有利于程序的后期维护工作。注释不会影响到程序的执行,因为在执行时,注释部分的内容不会被解释器执行。
PHP的注释有3种风格,下面分别进行介绍。
1.C风格的多行注释(/*…*/)

运行结果为:使用C风格的注释。
上面代码虽然使用echo输出语句分别输出了“这是第一行注释信息”“这是第2行注释信息”和“使用C风格的注释”,但是因为使用了注释符号“/*…*/”将前面两个输出语句注释掉了,所以没有被程序执行。
2.C++风格的单行注释(//)

运行结果为:使用C++风格的注释。
上面代码使用echo输出语句分别输出了“使用C++风格的注释”和“这就是C++风格的注释”,但是因为使用注释符号(//)将第2个输出语句注释掉了,所以不会被程序执行。
3.Shell风格的注释(#)

运行结果为:这是Shell脚本风格的注释。
因为使用了注释符号“#”,所以在#注释符号后面的内容是不会被程序执行的。
注意:在使用单行注释时,注释内容中不要出现“?>”标志,因为解释器会认为这是PHP脚本,而去执行“?>”后面的代码。例如:

运行结果为:这样会出错的!会看到?>。
程序注释是书写规范程序时很重要的一个环节。注释主要针对代码的解释和说明,用来解释脚本的用途、版权说明、版本号、生成日期、作者、内容等,有助于对程序的阅读理解。合理使用注释有以下几项原则。
1)注释语言必须准确、易懂、简洁。
2)注释在编译代码时会被忽略,不会被编译到最后的可执行文件中,所以注释不会增加可执行文件的大小。
3)注释可以书写在代码中的任意位置,但是一般写在代码的开头或者结束位置。
注:避免在一行代码或表达式的中间插入注释,否则容易使代码可理解性变差。
4)修改程序代码时,一定要同时修改相关的注释,保持代码和注释的同步。
5)在实际的代码规范中,要求注释占程序代码的比例达到20%左右,即100行程序中包含20行左右的注释。
6)在程序块的结束行右方加注释标记,以表明某程序块的结束。
7)避免在注释中使用缩写,特别是非常用缩写。
8)注释与所描述内容进行同样的缩排,可使程序排版整齐,并方便注释的阅读与理解。
2.1.4 PHP语句及语句块
PHP程序一般由若干条PHP语句构成,每条PHP语句完成某项操作。PHP中每条语句以英文“;”结束,但PHP结束标记之前的PHP语句可以省略结尾分号“;”。书写PHP代码时,一条PHP语句一般占用一行,但是一行写多条PHP语句或者一条PHP语句占用多行也是合法的(可能导致代码的可读性差,不推荐)。
如果多条PHP语句之间密不可分,可以使用“{”和“}”将这些PHP语句包含起来形成语句块。