这两个foreach循环之间有什么区别?

时间:2010-05-24 06:03:19

标签: php cakephp foreach

我在cakephp中看到foreach循环就像这样使用


foreach($tags as $tag) :
       \\code here
endforeach;

我曾经写过这种foreach风格


foreach($tags as $tag)
{
     //code here
}

这两个foeach循环之间有什么区别,哪一个更好,实现更有意义?

由于

6 个答案:

答案 0 :(得分:6)

它们是等价的,但是当你的PHP嵌入HTML时, second 首先有时更具可读性。

答案 1 :(得分:3)

他们是完全相同的。我会使用带有大括号的那些,因为语法更像其他PHP构造,C,C ++,Java等。

答案 2 :(得分:3)

它们是等价的,但是当PHP嵌入HTML时,第一个有时更具可读性 :)〜

由于它是平等的,所以没有任何方法可以被称为“更好”,并且只能达成协议。

答案 3 :(得分:3)

第一个是早期的PHP语法(PHP 4之前),第二个是现在普遍接受的。恕我直言,我会避免使用第一个,并总是使用花括号,即使是像

这样的东西
<?php foreach ($foo as $f) { ?>
<div><?= $f ?></div>
<?php } ?>

因为许多编辑都有大括号突出显示,并且这样做更好:)

答案 4 :(得分:2)

它们是完全相同的,因此第一个最有可能被使用,因为它允许一个人去支撑,你不需要记住括号的位置以及添加大部分其他的时候打开的是什么代码或HTML设计。

就像IF语句的替代方案一样:

<?php
if ($foo):
   echo "is ok\n";
elseif ($bar):
   echo "not ok\n";
else:
   echo "dont't know\n";
endif;
?>

答案 5 :(得分:0)

归结为个人或团队编码标准。我更喜欢{}选项,因为它可以生成更普遍可读的代码。没错,它在HTML中变得混乱,但再次使用编码标准你可以轻松实现。

如果你在循环中有很多HTML和PHP,使用:选项会在代码中产生严重的混淆,特别是如果循环运行在页面底部。使用{}突出显示语法将使您更容易识别循环内容。