书写规则

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.在 forwiile 的循环使用中,要警惕 continuebreak 的使用,避免产生类似 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;
}

    

文章导航