回显一行输出或关闭php标签和写出html代码有什么区别吗?

时间:2009-06-02 10:38:55

标签: php html

我几乎可以肯定答案是“根本没有!”但无论如何我会问。如果你在PHP中有一个条件语句,它回应了一行html,那么这两个例子之间在性能方面有什么不同:

<?php if ($output) { ?>
  <h2><?=$output;?></h2>
<?php } ?>

<?php if ($output) { echo "<h2>".$output."</h2>"; } ?>

10 个答案:

答案 0 :(得分:9)

我认为没有明显的性能差异。 我使用任何变体使我的代码更具可读性。

答案 1 :(得分:6)

字面上的答案是“根本没有”。考虑

<span>
<?php
  echo $myMessage;
?>
</span>

<?php
  echo "<span>\n";
  echo $myMessage;
  echo "</span>";
?>

我将从内存(几年前)开始,但在那时,Zend字节码编译器产生基本相同的输出; “literal”HTML被编译成包含文本的echo语句。

答案 2 :(得分:5)

除非您启用了short_open_tags,否则<?= ?>标记无效。

答案 3 :(得分:4)

如果你真的进入微优化,你应该从改变

开始
echo "<h2>".$output."</h2>";

成:

echo '<h2>', $output, '</h2>';

(没有变量扩展且没有字符串连接)

答案 4 :(得分:3)

为什么这么多PHP开发人员试图优化这些东西?这与关于单引号和双引号字符串的争论是一样的。如果这些性能差异在任何方式中都很重要,那么您应该使用其他语言。

答案 5 :(得分:2)

这称为微优化,你不能依赖这样的性能差异

但这在性能方面要好几纳秒

<?php if ($output) { ?>
  <h2><?=$output;?></h2>
<?php } ?>

答案 6 :(得分:2)

表演可以忽略不计,在实践中不值得担心。第一个选项是首选方法,因为它更具可读性,并且使用了PHP,因为它本意使用(模板化)。

理论上,我猜测第一种方法会更快,因为语言解析得更少。直接的html文本只是在没有处理的情况下返回。

答案 7 :(得分:1)

我更喜欢选项1,因为它可以在大多数情况下更容易编辑HTML - 特别是在处理内部内容的div时。

两种情况下的表现都可以忽略不计。

答案 8 :(得分:1)

为什么不试试呢?通过嗅探或查看您喜欢的浏览器中页面的来源。

答案 9 :(得分:1)

我必须知道在10000次迭代的循环中运行了几个不同的块。 获得的经验:不要打扰。编写可读和可维护的代码。使用MVC模式......:)

时间:2.66微秒

<? if ($output) { ?>
    <h2><?=$output;?></h2>
<? } ?>

时间:1.65微秒

<? if ($output) { echo "<h2>$output</h2>"; } ?>

时间:1.65微秒

<? if ($output) { echo "<h2>".$output."</h2>"; } ?>

时间:1.64微秒

<? if ($output) { echo '<h2>'.$output.'</h2>'; } ?>