该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
关联数组的键名
在 PHP 中,使用一个不用引号括起来的字符串作为一个关联数组的键名是可以运行的。我们不想这样做——为了避免混乱,这个字符串应当用引号括起来。注意,这只是当我们使用字符串时的情况,不是当我们使用变量时的情况。示例:如下例子不符合规范
$foo = $assoc_array[blah];
应如下书写:
$foo = $assoc_array['blah'];
简化运算符
简化自增($i++)和自减($i--)运算符是导致可读性问题的仅有的简化运算符。这些运算符不应当被用作表达式的一部分。然而,他们可以独占一行使用。在表达式中使用它们(带来的便利)还不够调试时头痛的(代价)。
示例:如下例子不符合规范
$array[++$i] = $j;
$array[$i++] = $k;
应如下书写:
$i++;
$array[$i] = $j;
$array[$i] = $k;
$i++;
if 以及else if的写法
当条件语句中的条件存在多个,并且有变量值的判断的时候,需要把变量的判断语句放在其他的条件语句之前。
示例:如下例子不符合规范
if (function_exists(‘ob_gzhandler’) && $val == 1){
}
应如下书写:
if ($val == 1 && function_exists(‘ob_gzhandler’)){
}
虽然在 PHP 中else if 和 elseif 的作用基本上是一样的。但是为了代码的统一性(也有传言 else if 会出现不稳定的情况),我们要求将 elseif 之间不保留空格:
if ($bool == 2){
}elseif ($n = 1){
}
输入变量的初始化
无论是函数的参数还是通过URL传递的变量,在调用之前均必须对其进行预处理以及设定默认值。
字符串必须进行trim及转义的处理,并且如果变量的值是在我们预计的范围之内,需要对变量的非法值做出相应的处理;对于数字型的变量则需要进行intval或者floatval的处理。require和include
在程序中需要使用包含文件的时候我们要求使用require_once或者include_once,不允许使用require或者include。
对于程序必须包含的文件只能采用require_once,而对于某些有条件包含的文件在引用时只能使用include_once。文件命名
文件名应当全部小写,并且词语之间以单个下划线分隔。
例如: current_user.php 是正确的, 但是 currentuser.php 和 currentUser.php 就不正确。
名称应当是描述性的,并且简明。我们自然不希望使用冗长的句子作为文件名,但是多输入几个字符总好于疑惑于某个文件到底是干什么用的。SQL语法SQL 代码布局
既然我们都在使用不同的编辑器设置,不要尝试去做诸如在 SQL 代码中实现列对齐此类的麻烦事。要做的是,不管用何种方法,把语句断行到它们单独的行上去。这里有一个 SQL 代码看上去应该是什么样子的示例。注意在哪里断行,大写,和括号的用法。
例如:
SELECT field1 AS something, field2, field3
FROM `table` a, `table` b
WHERE (this = that) AND (this2 = that2)
表名和字段值
SQL语句中的表名与字段名避免使用保留字;同时所有字段值的变量名,如果是数值型,需要强制类型转换。intval,floatval…SQL select 语句
在已知需要查询的字段的前提下,不允许使用如下的代码:
SELECT * FROM `mytable`
取而代之的写法是将每一个字段名写上去,请不要偷懒。
SELECT col1, col2, col3 FROM `mytable`
在需要获得已知记录数量情况下,请使用 LIMIT offset, count 的方式,尽量不要使用无 LIMIT 的 SELECT 语句。
在需要或者满足条件的记录数量的情况下,请使用 SELECT count([*|col1]) FROM 的方式,尽量不要使用 SELECT col1 FROM 的方式。
需要进行逻辑运算的时候,尽量不要使用不等于,可以使用大于或者小于的方式。