1、缩进
使用4个空格作为缩进,而不使用tab缩进。
4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。
一个制表符等于8个空格(而非4个),所以在某些编辑器中,需要特别指定一下制表符的长度为4(UltraEdit),而在某些编辑器中,会将制表符转换为空格。
2、大括号{}书写规则
{
直接跟在控制语句之后,不换行,如:
for ( $i=0;$i<$count;$i++ ) {
echo "test";
}
3、小括号()和函数、关键词等
小括号、关键词和函数遵循以下规则:
a.不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b );
b.小括号和函数名间没有空格;如$test = date("ymdhis");
c.除非必要,不要在`return
返回语句中使用小括号。 如
return $a;`。
4、=符号书写
在程序中=符号的书写遵循以下规则:
a.在=符号的两侧,均需留出一个空格;如 $a = $b
、$a = "test"
等;
b.在=符号与!、=、<、>等符号相邻时,不需留一个空格;如 if ( $a == $b )
、if ( $a != $b )
等;
c.在一个申明块,或者实现同样功能的一个块中,要求=号尽量上下对其,左边可以为了保持对齐使用多个空格,而右边要求空一个空格;如下例:
$testa = $aaa;
$testaa = $bbb;
$testaaa = $ccc;
5、if else swith for while等书写
对于控制结构的书写遵循以下规则:
a.在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:if ( 6 == $errorNum )
,因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要注意;
b.switch
结构中必须要有default
块;
c.在 for
和 wiile
的循环使用中,要警惕 continue
、 break
的使用,避免产生类似 goto
的问题。
6、语句断行
在代码书写中,遵循以下原则:
a.尽量保证程序语句一行就是一句,而不要让一行语句太长产生折行;
b.尽量不要使一行的代码太长,一般控制在120个字符以内;
c.如果一行代码太长,请使用类似 .= 的方式断行书写;
d.对于执行数据库的sql语句操作,尽量不要在函数内写sql语句,而先用变量定义sql语句,然后在执行操作的函数中调用定义的变量。
例子:
$sql = "SELECT username,password,address,age,postcode FROM test_t ";
$sql .= " WHERE username="aaa"";
$res = mysql_query($sql);
7、数字
一个在源代码中使用了的赤裸裸的数字是不可思议的数字,因为包括作者,在三个月内,没人知道它的含义。例如:
if ( 22 == $foo ) {
start_thermo_nuclear_war();
} elseif ( 19 == $foo){
refund_lotso_money();
} else {
cry_cause_in_lost();
}
你应该用define()
来给你想表示某样东西的数值一个真正的名字,而不是采用赤裸裸的数字,例如:
define("PRESIDENT_WENT_CRAZY", "22");
define("WE_GOOFED", "19");
define("THEY_DIDNT_PAY", "16");
if ( PRESIDENT_WENT_CRAZY == $foo ) {
start_thermo_nuclear_war();
} elseif ( WE_GOOFED == $foo){
refund_lotso_money();
} elseif ( THEY_DIDNT_PAY == $foo ){
infinite_loop();
} else {
cry_cause_in_lost();
}
8、判断
遵循以下规则:
a.不能使用 1/0 代替 true/false
,在 PHP 中,这是不相等的;
b.不要使用非零的表达式、变量或者方法直接进行 true/false
判断,而必须使用严格的完整 true/false
判断;
如:不使用 if ( $a )
或者 if ( checka() )
而使用 `if ( FALSE != $a )
或者
if ( FALSE != check() )`。
9、避免嵌入赋值
在程序中避免下面例子中的嵌入式赋值:
不使用这样的方式:
while ( $a != ( $c = getchar() ) ) {
process the character
}
10、习惯与约定
通常变量的命名应该是有意义的单词,但在循环体中临时变量采用“IN规则”。
IN规则原本来自FORTRAN,在FORTRAN中,以字母表中I~N范围内字母开头的变量默认为整型变量。循环体中一般是整型变量,故习惯用I~N字母作为循环体中的变量命名。同时,I是标识符(Identify)首字母。如下:
function bubble_sort($array){
$count = count($array);
for($i=0;$i<$count; $s++){
for($j=$count-1;$j<$i;$j--){
if($array[$j]<$array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}