附录C PHP代码编写的一般规则
在软件开发过程中,编程的工作量是相当大的,同一项目参与的开发人员可能有各自的编程经验和习惯,不同的代码编写风格使维护工作变得复杂和困难。众所周知,程序的可读性是非常重要的。良好的空格和缩进习惯将使代码易读、易改,会极大减少日后的维护工作量。
为了提高代码的可读性、系统的稳定性及降低维护成本,有必要在进行软件项目开发时,指定一套切实可行的代码编写规则。即便是一般情况下的程序编写,也应遵照某种代码编写规则,这不仅对个人来说可以养成良好的编程习惯,促进个人水平的提高,而且对整个团队来说都是大有裨益的。
需要特别说明的是,这里所介绍的PHP代码编写的一般规则,并不是某种标准。也就是说,PHP程序并不要求一定按这里介绍的规则进行代码编写。这里介绍的代码编写规则,只能算是一些经验的总结,以供读者参考,希望对读者有所帮助。
C.1 标识符命名规范
首先介绍标识符的命名规范,包括变量、常量、函数、类及文件等的命名规范。总体规则是所有命名尽量使用有意义的英文单词(或英文单词的缩写、简写)。
·全局变量和常量命名:全部使用大写字母,变量名的各个单词之间使用下划线分隔,如全局变量$CONFIG['POP_INFO']、常量ROOT_DIR。
·普通变量的命名:包括函数、类及类方法中的变量,全部使用小写字母,变量各个单词之间使用下划线分隔,如$user_name。
·普通函数命名:全部使用小写字母,单词之间使用下划线分隔,如load_info()。
·类方法命名:方法名的第一个单词小写,此后每个单词的首字母大写,单词不做分隔,如loadConfigInfo()。
·类命名:单词首字母大写,单词之间不做分隔,如WorkGroup。
·文件命名:全部使用小写字母,单词之间用下划线分割,如card_list.php。
C.2 代码编写规范
这里介绍的PHP代码编写规范包括程序注释规则、语句规则、空格规则、括号位置规则、空行规则等,下面分别加以介绍。
·注释规则:对整个程序文件的注释,必须说明文件名称、程序表述、开发人员、开发日期及版本信息等,并且采用“/**/”多行注释的方式示例代码如下。
/** *@file: config.php *@brife: 程序描述信息 *@author: mike *@date: 2007-5-23 *@version: 1.0 */
·每个函数、方法等开头部分必须说明功能、参数、返回值等。
·语句规则:在有等号的赋值(区别于自加或自减等的赋值方式)语句中,等号两边需要各加一个空格,此规则也适用于函数返回的赋值或连接赋值,示例代码如下。
$style = '';
·空格规则:程序中滥用空格是绝对不允许的。空格的滥用会导致程序可读性变得很差,使代码看起来松散难看。为使程序语句紧凑,首先,for循环中的赋值可以不在等号两边加空格。其次,保持if、elseif、for、while等语句与其后的括号之间不存在空白字符,如空格等,括号内语句中的分号紧跟前一个语句,不要加空白字符,如空格等,但分号可以与下一个语句之间存在一个空白字符,或不加空格。保持括号内的变量与运算符之间不存在空白,示例代码如下。
for( $i = $begin ; $i < $begin + $this -> pagenum ; $i ++ );
这一行代码是不符合空格规则的因为for与其之后的(之间有空格,变量$i与运算符<之间存在空格,变量$i与自加符号之间也存在空格等,这都造成了代码松散,不易阅读。如下示例代码也不符合空格规则。
if ( empty ( $index ) ) { //do something }
在这段代码中,空格被滥用了。类似的情况还包括函数名与其参数列表之间加了空格等。
·括号位置规则:使用括号如“{}”或“()”包含的语句块(如类定义、函数定义、for循环语句,if…else控制语句等),请将开始括号和结束括号分别放在开始的一行,并且此行只有括号存在。一对开始括号和结束括号在列上要对齐,一对开始括号和结束括号之间的语句,必须以括号所在列为准向内增加缩进(以缩进4个字符为佳)。开始括号或结束括号紧接着语句是不允许的,如下示例代码段不符合括号位置规则。
if($real == 123){ $timer = $_POST['timer']; if($type =='a'){ $tmp = jumps($timer); }else{ $tmp = jumps("120"); } }
这段代码中的括号完全没有对齐,给阅读程序带来极大的不便,而且不美观。这样写似乎节省了程序长度,减少了文件行数,但实际上,节省文件长度不应该在这里过多考虑,因为程序的可读性在这里才是最重要的。修改为如下代码即可使其符合括号位置规则。
if($real == 123) { $timer = $_POST['timer']; if($type =='a') { $tmp = jumps($timer); } else { $tmp = jumps("120"); } }
·空行规则:程序开发员需要在一个功能代码块结束后的适当位置添加一行空行,以增加程序的可读性。如在函数定义结束之后、函数内部的一个循环语句块结束后等加入一个空行。
再次强调一下,上面介绍的代码编写规则并不是标准,仅作为读者实际开发中的参考。