php echo vs open& close标签

时间:2009-09-08 14:56:39

标签: php tags echo

只是为了澄清:“echo vs print”和“双引号与单引号”这两个问题完全可以理解,这是关于另一个的事情:

有什么理由可以选择:

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>

会更快地执行/解析吗?更优雅? (等)

我倾向于使用第二种选择,但我担心我可能会忽略一些明显/必要的东西。

6 个答案:

答案 0 :(得分:9)

第一个的好处

  • 更易于阅读
  • ???

第二个的好处

  • WYSIWYG 可能
  • 使用某些IDE实现HTML代码完成/标记匹配
  • 没有逃避头痛
  • 更容易获得更大的HTML块

如果我在给定的PHP例程(如MVC视图)中有很多HTML,那么我肯定会使用第二种方法。但我的格式不同 - 我严格依赖于PHP分界的标签性质,即,我使PHP部分看起来像HTML标签一样

<table>
  <?php foreach($lotsofrows as $row) { ?>
  <tr>
    <td><?php echo $row['id']; ?></td>
  </tr>
  <?php } ?>
</table>

答案 1 :(得分:9)

我同意Peter Bailey的观点。但是,在视图中,我使用语句的替代语法,并且更喜欢短标记(特别是对于回显)。所以上面的例子将改为:

 <table> 
  <? foreach($lotsofrows as $row): ?>
  <tr>
    <td><?= $row['id']; ?></td>
  </tr>
  <? endforeach; ?>
 </table>

我相信这是Zend Framework的首选标准。

答案 2 :(得分:5)

第一个在我看来更具可读性,但是,第二个在技术上涉及较少的解析。在这种情况下,任何速度优势都可能是次要的,如果没有剖析,它将毫无意义。

过早优化是万恶之源。做什么使代码最容易阅读和维护。效率在可维护性方面处于次要地位。

请参阅http://en.wikipedia.org/wiki/Optimization_%28computer_science%29#When_to_optimize,了解有关该主题的一些好建议

答案 3 :(得分:2)

最好的是模板引擎。

但是,我认为回声更清晰,更易读(至少在这种情况下 - 正如评论所指出的那样,取决于),而不是在任何地方打开和关闭标签(我不太了解PHP内部到但是,告诉哪一个更快。

答案 4 :(得分:2)

你写的很可靠。 PHP可以用作编程语言,也可以用作简单而强大的Web模板语言。将这两种方法混合使用非常非常糟糕的做法,并且长期支持将是可怕的。

所以第二种风格更适用于带有大量html标记和少量代码的模板,首先是“清晰”的php编程。

答案 5 :(得分:2)

从编程的角度来看,第一个可读性更强,但第二个允许您在某些WYSIWYG HTML编辑器中打开文件并更改页面设计。

我更喜欢第二个选项,因为告诉你的设计师“页面的这一部分会表现得那样”比“这段代码那样”更容易