3

我正在写一个 wordpress 小部件插件。它应该输出一些看起来像这样的html代码

<a href="link1">link1title</a>
<a href="link2">link2title</a>
<a href="link3">link3title</a>
<a href="link4">link4title</a>
<a href="link5">link5title</a>

我正在运行一个 for 循环来输出 2 个数组的链接和标题,我可以通过两种不同的方式来做到这一点:

<?php for ($i = 0; $i < $x; $i++)
    echo '<a href="'.$links[$i].'">'.$titles[$i].'</a>';
?>

或者我可以使用这样的东西:

<?php ob_start();
for ($i = 0; $i < $x; $i++) {?>
    <a href="<?php echo $links[$i];?>"><?php echo $titles[$i];?></a>
<?php ob_get_flush();?>

这个例子是微不足道的。有更多的 html 代码,并且涉及更多的变量。由于 c/c++ 中 printf 和 cout 之间存在速度差异,我想知道使用输出缓冲区和 echo 之间是否存在速度差异。

另外,哪个更好用?

4

1 回答 1

3

当然有。使用echo,您将转储到输出流。使用ob_start,您正在创建一个缓冲区,然后必须对其进行处理(在ob_start转储到输出流之前的可选参数。

由于第二个基本上是“做一些事情,然后和第一个完全一样”,显然它会慢一些。

但是,如果使用得当,那么好处可能远远超过缺点。

于 2012-07-06T19:45:07.713 回答