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;

至少我再次省略了分号,并且(如预期的那样)发生了解析错误。

所以我的大问题是:什么时候可以省略花括号,以及在哪个结构/循环/功能中?我知道我绝对可以在ifelse。可是你知道whileforforeach

是的,我知道这是不安全,聪明的,无论使用哪种花括号而不用花括号进行编码,并且都有诸如$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

回到顶部