什么是这个冒号内的foreach语句?

时间:2011-07-04 04:00:04

标签: php arrays foreach

好的,我正式感到困惑。 我正在阅读这篇关于php的MVC简介,我看到了这段代码,并在顶部添加了一些项目以查看它是否真的有效。

  <?php 
 $members  = array('apple', 'oranges', 'banana');
  ?>

<html>
<h1>Members of community.com:</h1>
<ul>
<?php foreach ($members as $i => $member) : ?>
<li>Member #<?php echo $i + 1; ?>: <?php echo $member; ?></li>
 <?php endforeach; ?>
 </ul>
</html>

我注意到有一个:在foreach声明中。这是从哪里来的?更重要的是,它是什么?这是:符号意味着“好的,我们将在下一行继续这句话”?

但除此之外,这是我学到的很酷的技巧。我猜你的php回声中的html标签少了。

让我知道你的想法,谢谢!

2 个答案:

答案 0 :(得分:8)

这意味着foreach会一直持续到endforeach。它是{}的替代语法。

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

答案 1 :(得分:8)

这是“控制结构的替代语法”...请参阅http://ru2.php.net/manual/en/control-structures.alternative-syntax.phphttp://www.php.net/manual/en/control-structures.foreach.php#82511

它主要用在设计师可能正在查看的视图代码中,因为它被认为对于非程序员来说更容易理解。我强烈建议不要使用它,因为它真的没有提供任何评论的括号和许多IDE不能很好地使用它。如果您的代码可能需要被其他人查看,则最好不使用其他语法进行编码。

foreach ($setOfItems as $item):
    //do something
endforeach;

更好地表示为......

foreach ($setOfItems as $item) {
    //do something
} // end ($setOfItems as $item) foreach

在您开始嵌套多个以结构结尾的集合结构之后;而不是括号,然后评论大括号给出更详细的描述哪个块正在结束。当然,你可以对结构进行评论;语法,但你仍然有许多IDE无法为你匹配的问题。