3.6 换行 当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
- 在一个逗号后面断开 - 在一个操作符前面断开 - 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开 - 新的一行应该与上一行同一级别表达式的开头处对齐 - 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。
以下是断开方法调用的一些例子:
someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5);
$var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3));
以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。
$longName1 = $longName2 * ($longName3 + $longName4 - $longName5) + 4 * $longname6; //使用这种缩进方式
$longName1 = $longName2 * ($longName3 + $longName4 - $longName5) + 4 * $longname6; //避免这种
以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格
//传统的缩进方式 function someMethod($anArg, $anotherArg, $yetAnotherArg, $andStillAnother) { ... }
//利用8个连续空格避免过渡的缩进 function horkingLongMethodName($anArg, $anotherArg, $yetAnotherArg, $andStillAnother) { ... }
if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:
//不要使用这种缩进方式 if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { //错误的换行方式,没有进行缩进 doSomethingAboutIt(); //条件与此句对齐,造成阅读程序时很可能漏过此句 }
//应该使用这种缩进方式 if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); }
//或者这样的缩进方式也可以 if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); }
这里有三种可行的方法用于处理三元运算表达式:
$alpha = (aLongBooleanExpression) ? beta : gamma;
$alpha = (aLongBooleanExpression) ? beta : gamma;
$alpha = (aLongBooleanExpression) ? beta : gamma;
|