PHP-如果/其他,for,foreach,而-没有花括号?
真正想知道但从未发现的是PHP中的快捷方式。
我目前正在用一个foreach
循环在一个函数内编码一个函数。我试图省略花括号,就像您在if / else控制结构中所做的那样,它可以正常工作。没有错误。
foreach($var as $value) $arr[] = $value;
现在,我尝试以相同的方式使用它,但在其中放置了一个if / else块。再次,工作,没有错误。
foreach($var as $value) if(1 + 1 == 2) {
$arr[] = $value;
};
然后,我以为“这为什么起作用?” 省略了分号。还在工作。因此,我尝试在ifeach循环中使用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;
。我不想了解速记,我只是想了解有关何时何地可以省略大括号的条件。
回答:
当省略括号时,它将仅将下一个语句视为条件主体。
if ($x) echo 'foo';
是相同的
if ($x) { echo 'foo'; }
但请记住
if ($x) echo 'foo';
echo 'bar';
将 始终 打印“栏”
在内部,这是另一种方式:if
仅查看下一个表达式,但是PHP将所有内容都{}
视为单个“分组”表达式。
其他控制语句(foreach
,依此类推)相同
以上是 PHP-如果/其他,for,foreach,而-没有花括号? 的全部内容, 来源链接: utcz.com/qa/399558.html