如何正确缩进PHP/HTML混合代码?

Jam*_*ore 62 html php indentation

混合使用PHP和HTML时,要使用的缩进样式是什么?我是否缩进以使输出的HTML具有正确的缩进,或者使PHP/HTML混合看起来格式正确(因此更容易阅读)?

例如,假设我有一个foreach循环输出表行.下面哪一个是正确的?

PHP/HTML混合看起来正确:

<table>
  <?php foreach ($rows as $row): ?>
    <tr>
      <?php if ($row->foo()): ?>
        <?php echo $row ?>
      <?php else: ?>
        Something else
      <?php endif ?>
    </tr>
  <?php endforeach ?>
</table>
Run Code Online (Sandbox Code Playgroud)

输出的HTML看起来正确:

<table>
<?php foreach ($rows as $row): ?>
  <tr>
  <?php if ($row->foo()): ?>
    <?php echo $row ?>
  <?php else: ?>
    Something else
  <?php endif ?>
  </tr>
<?php endforeach ?>
</table>
Run Code Online (Sandbox Code Playgroud)

我发现当我遇到这种情况时(非常频繁),我没有标准的样式可供使用.我知道可能没有"正确"的答案,但我很想听听其他开发者的想法.

cha*_*aos 47

PHP和HTML都应该缩进,以便它们在源代码中相对于它们是正确的,而不管彼此和输出形式如何:

<table>
<?php foreach ($rows as $row): ?>
    <tr>
    <?php if ($row->foo()): ?>
        <?php echo $row ?>
    <?php else: ?>
        Something else
    <?php endif ?>
    </tr>
<?php endforeach ?>
</table>
Run Code Online (Sandbox Code Playgroud)


mpe*_*pen 14

我经常考虑这个问题,但后来我意识到,谁在乎HTML输出是什么样的?无论如何,您的用户不应该查看您的HTML.这是的阅读,也许是其他几个开发人员.保持代码尽可能干净,忘记输出的样子.

如果您需要调试输出,请使用Chrome开发者工具,Firebug甚至F12工具.


tj1*_*111 10

我通常在行的开头放置开启的 php标签,但是缩进标签内的任何内容以匹配html格式.但是,对于简单的echo语句,我不这样做,因为我使用的是短开标签.我认为在浏览文件以查找所有声明时更简单.

    <table>
<?  foreach ($foo as $bar): ?>
      <tr>
<?    foreach ($bar as $baz): ?>

         <td><?=$baz?></td>

<?    endforeach ?>
      </tr>
<?  endforeach ?>
    </table>
Run Code Online (Sandbox Code Playgroud)

  • 你不应该使用短开标签.您可以使用连接到php设置short_open_tag的代码遇到各种问题. (2认同)
  • @markus:正如我在维基百科用户页面上所说的那样,当你从我冷酷无情的手中撬开它们时,你可以得到我的短标签.严肃地说,我认为我能够处理XML版本标签的事情. (2认同)