我一直想知道但从未弄明白的是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;
和if: doSomething(); endif;
、endfor;
和endforeach;
这样的缩写。我不想学习缩写,我只想理解在什么情况下可以省略花括号。
struct
和class
的声明除外。 - Eric