在混合使用PHP和HTML时,应该使用哪种适当的缩进样式?缩进是使输出的HTML具有正确的缩进,还是使PHP/HTML混合看起来格式正确(因此更容易阅读)?
例如,假设我有一个输出表格行的foreach
循环。下面哪一个是正确的?
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>
输出的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>
我发现,当我遇到这种情况(相当频繁)时,我没有标准的样式可用。我知道可能没有一个“正确”的答案,但我很乐意听到其他开发人员的想法。
发布于 2009-07-20 20:33:38
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>
发布于 2009-07-21 05:31:56
我也经常思考这个问题,但后来我意识到,谁会关心HTML输出是什么样子呢?你的用户无论如何都不应该看你的HTML。它供您阅读,也可供其他开发人员阅读。尽可能保持源代码的整洁,忘记输出是什么样子的。
如果你需要调试输出,可以使用Chrome Developer Tools,Firebug,甚至F12工具。
发布于 2009-07-20 20:38:12
我通常将php开始标记放在行的开头,但缩进标记中的任何内容以匹配html格式。但是,我不会对简单的echo语句执行此操作,因为我使用的是短开标记。我认为当浏览文件以查找所有声明时,这会使它变得更简单。
<table>
<? foreach ($foo as $bar): ?>
<tr>
<? foreach ($bar as $baz): ?>
<td><?=$baz?></td>
<? endforeach ?>
</tr>
<? endforeach ?>
</table>
https://stackoverflow.com/questions/1155799
复制相似问题