日期:2013-10-20  浏览次数:20582 次

If Then Else 格式
布局
这由程序员决定。不同的花括号样式会产生些微不同的样观。一个通用方式是:
   if (条件1)                 // 注释
   {
   }
   else if (条件2)            // 注释
   {
   }
   else                           // 注释
   {
   }
如果你有用到else if 语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话
放一个记录信息注释在else处,即使在else没有任何的动作。
条件格式
总是将恒量放在等号/不等号的左边,例如:
if ( 6 == $errorNum ) ...
一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值
而不是在你的表达式的末端找到它。需要一点时间来习惯这个格式,但是它确实很有用。
--------------------------------------------------------------------------------
switch 格式
Falling through a case statement into the next case statement shall be permitted as long as a comment is included.
default case总应该存在,它应该不被到达,然而如果到达了就会触发一个错误。
如果你要创立一个变量,那就把所有的代码放在块中。
例如
   switch (...)
   {
      case 1:
         ...
      // FALL THROUGH
      case 2:
      {
         $v = get_week_number();
         ...
      }
      break;
      default:
   }
--------------------------------------------------------------------------------
continue,break 和 ? 的使用:
Continue 和 Break
Continue 和 break 其实是变相的隐蔽的 goto方法。
Continue 和 break 像 goto 一样,它们在代码中是有魔力的,所以要节俭(尽可能少)的使用它们。
使用了这一简单的魔法,由于一些未公开的原因,读者将会被定向到只有上帝才知道的地方去。
Continue有两个主要的问题:
它可以绕过测试条件。
它可以绕过等/不等表达式。
看看下面的例子,考虑一下问题都在哪儿发生:
while (TRUE)
{
   ...
   // A lot of code
   ...
   if (/* some condition */) {
      continue;
   }
   ...
   // A lot of code
   ...
   if ( $i++ > STOP_VALUE) break;
}
注意:"A lot of code"是必须的,这是为了让程序员们不能那么容易的找出错误。
通过以上的例子,我们可以得出更进一步的规则:continue 和 break 混合使用是引起灾难的正确方法。
?:
麻烦在于人民往往试着在 ? 和 : 之间塞满了许多的代码。以下的是一些清晰的连接规则:
把条件放在括号内以使它和其他的代码相分离。
如果可能的话,动作可以用简单的函数。
把所做的动作,“?”,“:”放在不同的行,除非他们可以清楚的放在同一行。
例如
   (condition) ? funct1() : func2();
   or
   (condition)
      ? long statement
      : another long statement;
--------------------------------------------------------------------------------
声明块的定位
声明代码块需要对齐。
理由Justification
清晰。
变量初始化的类似代码块应该列表。
The ??token should be adjacent to the type, not the name.
例如
   var       $mDate
   var&      $mrDate
   var&      $mrName
   var       $mName
   $mDate    = 0;
   $mrDate   = NULL;
   $mrName   = 0;
   $mName    = NULL;
--------------------------------------------------------------------------------
每行一个语句
除非这些语句有很密切的联系,否则每行只写一个语句。
-