只是为了澄清:该问题“回声VS打印”和“双引号VS单引号”是完全了解,这是另一件事:
是否有一个为什么会喜欢的任何方面的原因:
echo '<table>';
foreach($lotsofrows as $row)
{
echo '<tr><td>',$row['id'],'</td></tr>';
}
echo '<table>';
过度:
<table><?php
foreach($lotsofrows as $row)
{ ?>
<tr>
<td><?php echo $row['id']; ?></td>
</tr><?php
} ?>
</table>
要么一个执行/解析速度更快? 更优雅? (等等。)
我倾向于使用第二个选项,但我担心我可能会被忽视的东西明显/至关重要。
第一个好处
第二个好处
- 所见即所得是可能的
- HTML代码完成/标记匹配可能与一些集成开发环境
- 没有逃脱头痛
- 更容易为HTML较大的大块
如果我有一个给定的PHP程序大量的HTML(像一个MVC视图),那么我肯定要用到第二个方法。 但是我不同的格式 - 我严格依赖于PHP的界限,即标签般的性质,我让PHP部分看起来就像HTML标签,我可以
<table>
<?php foreach($lotsofrows as $row) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
</tr>
<?php } ?>
</table>
我同意彼得·贝利。 然而,在视图中我使用的语句替代语法,并且更喜欢短标签(特别是呼应)。 所以,以上的例子,而不是阅读:
<table>
<? foreach($lotsofrows as $row): ?>
<tr>
<td><?= $row['id']; ?></td>
</tr>
<? endforeach; ?>
</table>
我相信这是Zend框架的首选标准。
第一个是远在我看来更具可读性,然而,第二在技术上涉及的分析较少。 在这种情况下,任何速度上的优势将可能是轻微的,不剖析没什么意义。
过早的优化是所有罪恶的根源。 做什么让最简单的代码阅读和维护。 效率屈居可维护性。
看到http://en.wikipedia.org/wiki/Optimization_%28computer_science%29#When_to_optimize有关问题的一些好的建议
这是非常可靠的,你写的是什么。 PHP可以作为编程语言,或以简单而强大的网络模板语言。 这两种用法非常,非常糟糕的做法的混合,将是可怕的长期支持。
所以第二风格与很多HTML标记和代码的小斑点,第一模板更可用 - 为“清晰的” PHP编程。
最好的一个是一个模板引擎。
但是,我认为回声的方式更清洁,更可读的(至少在这种情况下 - 在评论中指出,这取决于),比打开和关闭到处标签(我不知道太多关于PHP内部说哪一个速度更快,虽然)。
第一个是从视图编程角度更具可读性,但第二个允许你打开一些所见即所得的HTML编辑器文件并更改页面设计。
我倾向于第二种选项,因为它是很容易告诉你的设计师说,“页面的这一部分会那样做”,不是“这段代码这是否”