之间是否有任何重大差异
foreach(){
}
foreach():
endforeach;
答案 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。
就性能而言,我猜测没有(人类)可观察到的差异。