foreach()之间的区别

时间:2011-05-09 07:05:21

标签: php

之间是否有任何重大差异
foreach(){
}

foreach():
endforeach;

4 个答案:

答案 0 :(得分:5)

不,这只是alternative syntax。他们是完全一样的。

答案 1 :(得分:3)

我认为foreach替代结尾是endforeach; 基本上它是一样的。替代语法可以让您选择决定使用什么。

例如我在我的模板中使用它:

<?php foreach (...): ?>
   .... some html here ....
<?php endforeach; ?>

我在其他地方使用传统的{}方式。它只是增加了一些可读性。

此处有更多信息:http://php.net/manual/en/control-structures.alternative-syntax.php

答案 2 :(得分:1)

是的,他们的语法不同。

Alternative syntax for control structures中的评论部分尝试列出一些优点和缺点,但最终差异在于代码美学。

  

如果您遵循MVC设计模式,那么只有您的视图文件中应该包含HTML。在这些文件中使用无括号语法只能进一步将它们与其余代码分开。

     

无括号语法的主要优点是在进入和退出php模式时大括号丢失,特别是如果你使用php短标签(这与其他地方所说的相反,如果你使用htaccess在你的应用程序中部署mod_rewrite在您的应用程序中使用短标签是安全的。服务器管理员不能拒绝给您短标签,同时授予mod_rewrite(以及为什么他们甚至会尝试超出我)。

答案 3 :(得分:0)

所提到的第二种形式称为Alternative syntax for control structures。它使您能够“浸入和退出”PHP。

就性能而言,我猜测没有(人类)可观察到的差异。