命名规则:采用驼峰标识,尽量做到见名知义
PHP编码规范与原则:
//命名:类,方法,函数,变量,
注释:开发中难免留下一些临时代码和调试代码,此类代码必须添加注释,以免日后遗忘。所有临时性、调试性、试验性的代码,必须添加统一的注释标记“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。
如:$flag = TRUE; //debug 这里不能确定是否需要对$flag进行赋值
缩进/空格:使用四个空格为每层次缩进。对于最大缩进层数,并没有一个固定的规矩,假如缩进层数大于五层的时候,考虑着将代码因数分解。
运算符、小括号、关键词和函数:不要把小括号和关键词紧贴在一起,要用空格隔开它们;不要把小括号和函数名紧贴在一起;除非必要,不要在Return返回语句中使用小括号。
如:
if (condition) {
}
大括号{}、if和switch:
首括号与关键词同行,尾括号与关键字同列;
if结构中,if和elseif与前后两个圆括号同行,左右各一个空格,所有大括号都单独另起一行。另外,即便if后只有一行语句,仍然需要加入大括号,以保证结构清晰;总是将恒量放在等号/不等号的左边。
switch结构中,通常当一个case块处理后,将跳过之后的case块处理,因此大多数情况下需要添加break。break的位置视程序逻辑,与case同在一行,或新起一行均可,但同一switch体中,break的位置格式应当保持一致。
如:
$result = (($a + 1) * 3 / 2 + $num)).’Test’;
If ($condition) {
}
else
{
}
switch ($var)
{
case 1: echo ‘var is1’; break;
case 2: echo ‘var is2’; break;
default: echo ‘var is neither 1 or2’; break;
}
continue,break 和 ? 的使用:把条件放在括号内以使它和其他的代码相分离;如果可能的话,动作可以用简单的函数;把所做的动作,“?”,“:”放在不同的行,除非他们可以清楚的放在同一行。
如:
(condition) ? funct1() : func2();
或
(condition)
? long statement
: another long statement;
不要采用缺省方法测试非零值:
用if (FAIL != f()) 比if (f()) 好
布尔逻辑:
if (TRUE == func()) { …
应该写成:
if (FALSE != func()) { …
避免嵌入式的赋值:
如:while ($a != ($c = getchar())) 要避免
引号:
写数组的索引时,必须使用单引号 如:$test[‘key’]
绝大多数可以使用单引号的场合,禁止使用双引号
声明块的定位:声明代码块需要对齐
如:
var $mDate
var $mName
常量:常量应该总是全部使用大写字母命名,少数特别必要的情况下,可使用划线来分隔单词
函数定义:参数的名字和变量的命名规范一致;函数定义中的左小括号,与函数名紧挨,中间无需空格;开始的左大括号另起一行;具有默认值的参数应该位于参数列表的后面;函数调用与定义的时候参数与参数之间加入一个空格;必须仔细检查并切实杜绝函数起始缩进位置与结束缩进位置不同的现象。
包含调用:包含调用程序文件,请全部使用require_once,以避免可能的重复包含问题;
包含调用缓存文件,由于缓存文件无法保证100%正确打开,请使用include_once或include。在必要时,可以使用@include_once或@include的方式,以忽略错误提示;
注释规则:
类注释:
方法注释
变量注释
if (0)来注释外部代码块
有时需要注释大段的测试代码,最简单的方法就是使用if (0)块:
你不能使用/**/,因为注释内部不能包含注释,而大段的程序中可以包含注释。
PHP文件扩展名
所有浏览者可见页面使用.html
所有类、函数库文件使用.php
PHP代码标记
统一使用<?php ?>,只输出变量时<?=$username?>
SQL设计规范:
命名:表名,字段名,字段结构,索引名
表和字段命名:所有数据表名称,只要其名称是可数名词,则必须以复数方式命名,例如:phpcms_member(用户表);存储多项内容的字段,或代表数量的字段,也应当以复数方式命名,例如:hits(查看次数)、items(内容数量)。
SQL语句书写:所有SQL语句中,除了表名、字段名称以外,全部语句和函数均需大写,应当杜绝小写方式或大小写混杂的写法。进行SQL执行的数据必须进行有效性检测。
SQL语句书写遵循优化原则
书写规范:
HTML 属性全部用双引号
尽量不要穿插PHP代码
输出网页的页面不出现SQL语句