PHP - If/else, for, foreach, while - 没有大括号?
2022-08-30 09:42:24
真正想知道但从未发现的东西是PHP中的快捷方式。
我目前正在用一个循环编写一个函数,里面只有一个语句。我试图省略大括号,就像你可以在if/else控制结构中做的那样,它的工作原理。无错误。foreach
foreach($var as $value)
$arr[] = $value;
现在我试图以同样的方式使用它,但是在里面放一个if/else块。再次,工作并且没有错误。
foreach($var as $value)
if(1 + 1 == 2) {
$arr[] = $value;
};
然后,我想到了“为什么这有效?”,并省略了结束分号。仍在工作。因此,我尝试使用if/else语句,在foreach循环内没有大括号,并且再次使用,仍然有效并且没有错误。但是,现在前循环真的关闭/结束吗?
foreach($var as $value)
if(1 + 1 == 2)
$arr[] = $value;
至少我再次省略了结束分号,并且(如预期的那样)发生了解析错误。
所以我最大的问题是:我什么时候可以省略大括号,在哪个结构/循环/函数中?我知道我绝对可以在 和 中这样做。但是呢,和呢?if
else
while
for
foreach
是的,我知道它不安全,聪明,无论在没有大括号的情况下编码,并且有像和,和这样的速记。我不想学习速记,我只想了解何时何地可以省略大括号的条件。$condition ? true : false;
if: doSomething(); endif;
endfor;
endforeach;