Недостатки использования буферизации вывода полностью зависят от контекста вашего использования.
Одним из самых больших недостатков буферизации вывода является сообщение об ошибке выполнения или предупреждения могут быть подавлены, и иногда вы можете получить ошибочные данные.
Рассмотрим следующий пример:
Если какая-либо из fetch_template_and_render
или do_render
броска запустить время ошибки, они будут сброшены в свой выходной, и в конце концов в этом примере будет в конечном итоге в базе данных или кэш-памяти.
Вот 2 фрагменты, которые демонстрируют то, что я имею в виду, которые вы можете попробовать для себя
# 1
<?php
echo 1/0;
?>
выходов
Warning: Division by zero on line 1
# 2
<?php
ob_start();
echo 1/0;
$var = ob_get_clean();
?>
выходы ничего.
Чтобы избежать подобных случаев, вам необходимо проявлять осмотрительность в отношении проверки ошибок и принять меры предосторожности.
При использовании старательно, ob_ * функции очень мощные и супер полезные.
Объем памяти в основном. –
Также, каковы ваши источники? –
Из документов: 'Некоторые веб-серверы (например, Apache) изменяют рабочий каталог скрипта при вызове функции обратного вызова. Вы можете изменить его, например. chdir (dirname ($ _ SERVER ['SCRIPT_FILENAME'])) в функции обратного вызова. ' –