php foreach语法没有{}

时间:2014-01-12 22:32:08

标签: php foreach

我正在阅读一篇关于python相当于foreach()的蟒蛇文章的PHP文章,他们给出了PHP代码示例

foreach ( $items as $item )
    echo $item;

这是一个有效的语法,而{}我总是把它看成是

foreach ( $items as $item ){
    echo $item;
}

我在本地通过coderunner运行第一个示例以查看它是否会通过错误并且它没有,这是一个有效的语法使用还是我会遇到使用它的问题?

4 个答案:

答案 0 :(得分:9)

foreach{ ... }视为2种不同且独立的语言结构。

原始foreach语法为

foreach (...)
    statement

echo $item;是一个有效的陈述。

{ // any code here }也是一个有效的陈述。

答案 1 :(得分:4)

是的,这是有效的。我经常看到这写为

<?php 
foreach($array as $element): 
  //do something 
endforeach; 
?>

请参阅 - http://www.php.net/manual/en/control-structures.foreach.php

答案 2 :(得分:2)

假设在foreach循环“内部”有一个语句,这是有效的。这实际上超出foreach,它适用于forwhileif等。此外,它不是特定于PHP,许多语言支持这种单语句短手。

答案 3 :(得分:0)

是的,这是一个有效的例子。它只有在有一个语句要执行或者语句级联到另一个条件/语句时才有效。

因此,虽然以下示例无效,(只有第一个echo将在循环内执行)。

foreach( ... )
    echo ...
    echo ...

这个例子仍然是

foreach( ... )
    if( ... )
        echo ...