我几乎可以肯定答案是“根本没有!”但无论如何我会问。如果你在PHP中有一个条件语句,它回应了一行html,那么这两个例子之间在性能方面有什么不同:
<?php if ($output) { ?>
<h2><?=$output;?></h2>
<?php } ?>
和
<?php if ($output) { echo "<h2>".$output."</h2>"; } ?>
答案 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>'; } ?>