3.6 改行
式が 1 行に収まらない場合は、次の一般規則に従って分割できます:
- カンマの後にブレークします
- 演算子の前にブレークします
- 下位レベルのブレークよりも上位レベルのブレークを優先します
- 新しい行は、前の行と同じレベルで式の先頭に揃える必要があります
-上記のルールによってコードが乱雑になったり、コードの右側が乱雑になったりする場合は、代わりに 8 個のスペースでコードをインデントします。
切断されたメソッド呼び出しの例をいくつか示します:
someMethod(longExpression1,longExpression2,longExpression3,
longExpression4,longExpression5);
$var = someMethod1(longExpression1,
ここでは、接続されていない算術式の 2 つの例を示します。前者の方が優れています。これは、ブレークが括弧式の外側にあり、より高いレベルのブレークであるためです。
$longName1 = $longName2 * ($longName3 + $longName4 - $longName5)
+ 4 * $longname6; // このインデント方法を使用します;
$longName1 = $longName2 * ($longName3 + $longName4
- - $longName5) + 4 * //これは避けてください
;
以下は、インデントされたメソッド宣言の 2 つの例です。前者が標準です。後者が通常のインデント方法を使用する場合、2 行目と 3 行目はかなり右に移動されるため、代わりに 8 個のスペースでインデントされます
//従来のインデント方法
function someMethod($anArg, $anotherArg, $yetAnotherArg, $andStillAnother) {
...
}
//遷移的なインデントを避けるために 8 つの連続したスペースを使用します
function horkingLongMethodName($anArg,
$andStillAnother) {
...
}
if ステートメントの行の折り返しでは、通常、8 スペース ルールが使用されます。これは、通常のインデント (スペース 4 つ) を使用すると、ステートメントの本文がより面倒に見えるためです。例:
//このインデント方法は使用しないでください
if ((条件1 && 条件2) || (条件3 && 条件4)
||!(条件5 && 条件6)) { //改行が間違っています、インデントがありません
doSomethingAboutIt() ; //条件はこの文と一致しているため、プログラムを読むときにこの文を見逃す可能性があります
}
//このインデント方法を使用する必要があります
if ((条件1 && 条件2)
||!(条件5 && 条件6)) {
doSomethingAboutIt();
}
//あるいはこのインデント方法も使えます
if ((condition1 &&condition2) || (condition3 &&condition4)
doSomethingAboutIt();
}
三項式を処理する 3 つの方法を次に示します:
$alpha = (aLongBooleanExpression) ? beta
: ガンマ;
$alpha = (aLongBooleanExpression)
? beta