这两种输出html内容与php性能明智的方式有什么区别吗?

时间:2012-06-27 12:00:13

标签: php performance

<?php
            foreach($pricelistline as $value) {
                $e = explode(",",$value);
                if ($e[0]) {
                    echo "<li>\n<img width=\"24\" height=\"24\" src=\"features_icons/" . $e[0] . ".png\" alt=\"\" class=\"\" />\n<span>" . str_replace("-", " ", ucfirst($e[0])) . "</span>\n</li>\n";
                }
            }
?>

这个_

<?php
            foreach($pricelistline as $value) {
                $e = explode(",",$value);
                if ($e[0]) {
?>
                    <li>
                        <img width="24" height="24" src="features_icons<?php echo $e[0]; ?>.png" alt="" class="" />
                        <span><?php echo str_replace("-", " ", ucfirst($e[0])); ?></span>
                    </li>
<?php
                }
            }
?>

一般情况下,表现有什么不同吗? 速度和负载有什么不同吗?

多次退出和进入php会降低性能吗? <?php >

哪一个被认为是更好的做法?

1个echo实例和2个实例之间有什么区别吗?

2 个答案:

答案 0 :(得分:1)

与回显字符串相反,输入和退出PHP的优点是文本编辑器可以语法突出显示HTML。如果它在PHP字符串中,则不能。

在性能方面,我认为差异是完全无关紧要的,因此无关紧要。这是过早微优化的情况。无论您选择哪种方法,都确定是您应用程序中的瓶颈。如果您的应用程序没有充分执行,那么请进行性能分析以确定实际需要的时间太长。

答案 1 :(得分:0)

PHP编译器可能会将两者解析为几乎相同但性能差异不大。 通常,在PHP中输出的方式不是主要的性能问题。

通过将$e[0]置于其自己的变量中,优化逻辑的其他部分或使用ob_start('gz_handler')来压缩输出以便更快地传输,您可以节省更多性能。

话虽如此,为什么不使用microtime()并迭代该特定代码几千次?在性能方面,测量总是优于某人的意见(包括我的意见)。更好的是,使用XDebug或真正的分析器来找出处理时间的花费。