Что быстрее: выходной буфер или эхо


Я пишу плагин виджетов 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-кода и гораздо больше переменных, участвующих. Поскольку существует разница в скорости между printf и cout в c / c++, мне было интересно, есть ли скорость разница между использованием выходного буфера и Эхо.

Также, Какой из них лучше использовать?

1 3

1 ответ:

Конечно, есть. С помощью echo вы сбрасываете данные в выходной поток. С помощью ob_start вы создаете буфер, который затем должен быть обработан (необязательный аргумент для ob_start перед сбросом в выходной поток.

Поскольку второй вариант-это в основном "сделать что-то, а затем сделать то же самое, что и первый", очевидно, что он будет медленнее. Однако при правильном использовании преимущества могут значительно перевесить недостатки.