真正想知道但从未发现的东西是 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;
andendfor;
之类的简写endforeach;
。我不想了解速记我只想了解何时何地可以省略大括号的条件。