php echo vs open&close标签

Mig*_*igs 15 php tags echo

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

有没有理由为什么人们会更喜欢:

echo '<table>';   
foreach($lotsofrows as $row)
{
    echo '<tr><td>',$row['id'],'</td></tr>';   
}
echo '<table>';
Run Code Online (Sandbox Code Playgroud)

过度:

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

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

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

Pet*_*ley 9

第一个的好处

  • 更容易阅读
  • ???

第二个的好处

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

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

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


voi*_*ate 9

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

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

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


Jon*_*and 6

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

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

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