【问题标题】:A lot of opening/closing of PHP tags大量打开/关闭 PHP 标签
【发布时间】:2013-11-15 10:59:42
【问题描述】:

我一直想知道:有一个大的打开和关闭 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 引擎会不会伤害......

【问题讨论】:

  • php echo vs open&close tag 的可能重复项
  • 大量&lt;?php ?&gt; 与 HTML 内容混合在一起很难维护。你的第二种情况似乎更好。但是,我更喜欢避免将 HTML 和 PHP 与 RainTPL 之类的模板系统混合使用
  • 哎呀,对不起,最好在这里欺骗:stackoverflow.com/questions/2437144/…
  • 我强烈建议将 twig 作为模板引擎。它可以被缓存用于生产,因此在开发中您会立即看到更改,但在生产中它使用缓存的 样式标签。非常高效,非常可维护,并具有大量惊人的功能。 twig.sensiolabs.org
  • 感谢您的回复...确实,它似乎与其他问题重复,谢谢@Boann!

标签: php


【解决方案1】:

不,没问题,在这种情况下,您应该始终选择更好的可读性。

如果可能的话,还可以考虑激活短标签(但要注意,这些可能会对 XML sytnax 产生一些副作用/问题,如 cmets 中所述)

<? if ($bool) { ?>
    <?= $myVarThatIWantToOutput ?>
<? } ?>

或者考虑使用 smarty 或 twig 之类的模板引擎,它们以某种方式限制您强制拆分关注点,使某些内容更容易(并且更具可读性)并允许缓存已编译的模板以确保您仍然获得正确的速度。

【讨论】:

  • 短开标签在使用 XML 和其他标记语言时可能会导致错误。我不认为这是一个好建议 :( 模板引擎是个好建议,你和 twig 太棒了!
  • 这实际上就是我所说的“如果可能”。在常规的 HTML 环境中,短标签应该不是问题。但我会编辑我的答案!
猜你喜欢
  • 2010-11-26
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2016-03-17
相关资源
最近更新 更多