PHP のショートカットは、本当に知りたいのに、まったくわからないものです。
私は現在、foreach
内部に単一のステートメントを含むループを含む関数をコーディングしています。if/else 制御構造でできるように、中括弧を省略しようとしましたが、機能します。エラーなし。
foreach($var as $value)
$arr[] = $value;
今、同じように使用しようとしましたが、内部に if/else ブロックを入れました。繰り返しますが、動作しており、エラーはありません。
foreach($var as $value)
if(1 + 1 == 2) {
$arr[] = $value;
};
それで、「なんでこれが効いているの?」と思いました。終了セミコロンを省略しました。まだ働いている。そのため、foreach ループ内で中括弧を使用せずに if/else ステートメントを使用しようとしましたが、それでも動作し、エラーは発生しませんでした。しかし、foreach ループは今、本当にクローズ/終了していますか?
foreach($var as $value)
if(1 + 1 == 2)
$arr[] = $value;
少なくとも、最後のセミコロンをもう一度省略したところ、(予想どおり) 解析エラーが発生しました。
だから私の大きな質問は、いつ中括弧を省略でき、どの構造/ループ/関数で省略できるのですか? if
と で間違いなくできることを知っていelse
ます。しかしwhile
、for
とはforeach
どうでしょうか。
そして、はい、中括弧なしでコード化することは安全でもスマートでもなく、$condition ? true : false;
and if: doSomething(); endif;
、endfor;
andのような省略形があることを私は知っていますendforeach;
。略記については知りたくありません。いつ、どこで中括弧を省略できるかについての条件を理解したいだけです。