我一直想知道:有一个大的开放式PHP(即模板)会受伤吗?
澄清:
<html>
<?php echo $test; ?>
<body <?php echo $test2; ?>>
<table>
<?php foreach ($rows as $row): ?>
<tr>
<td><?php echo $row['cell1']; ?></td>
<td><?php echo $row['cell1']; ?></td>
<td><?php echo $row['cell1']; ?></td>
<td><?php echo $row['cell1']; ?></td>
<?php echo $row['added cells']; ?>
</tr>
<?php endforeach; ?>
</table>
<?php echo $someMorePhp; ?>
<div>
<?php /*do some more php stuff */ ?>
</div>
etc etc
etc
或者是否可取。即
<html>
<php echo $test.'<body'.$test2; ?>>
<table>
<?php foreach ($rows as $row) {
echo '<tr>
<td>'.$row['cell1'].'</td>
<td>'.$row['cell2'].'</td>
<td>'.$row['cell3'].'</td>
<td>'.$row['cell4'].'</td>
<td>'.$row['cell1'].'</td>
'.$row['added cells'].'
<tr>';
}
</table>
// etc
我知道这可能看起来像微优化等。要清楚我正在寻找一个经验法则而不是一个特定的用例...在单个脚本运行期间是否会影响进入和退出php引擎......
答案 0 :(得分:0)
不,这没问题,在这种情况下你应该总是选择更好的可读性。
另外考虑一下如果可能的话激活短标签(但要注意,那些可能会对评论中所述的XML sytnax产生一些副作用/问题)
<? if ($bool) { ?>
<?= $myVarThatIWantToOutput ?>
<? } ?>
或者考虑使用像smarty或twig这样的模板引擎,这会限制你以某种方式强制拆分问题,使一些东西更容易(也更易读)并允许缓存已编译的模板以确保你仍然获得正确的速度。