Вывод буферизации в PHP - это весело. Это упрощает многие вещи. Я использую ob_start() в верхней части скрипта и ob_get_clean() (или любую другую функцию) внизу.Буферизация вывода, иерархическая?
Между этими двумя вызовами можно снова вызвать эти функции, не мешая родительским вызовам.
Действительно ли этот тип кода действителен? (он отлично работает, но ...) Это хорошая привычка?
<?php
ob_start(); //NOTICE !!!
echo '<p>echos of the top of the script</p>';
echo GetSomeOtherData(true);
echo '<p>echos after GetSomeOtherData()</p>';
$data = ob_get_clean(); //NOTICE !!!
echo $data;
//just a function to return something, with the help of output buffering
function GetSomeOtherData($toReturn)
{
ob_start(); //NOTICE !!!
echo '<p>This has been rendered inside a function</p>';
$function_data = ob_get_clean(); //NOTICE !!!
if($toReturn===true)
{
return $function_data;
}
else
{
//may be an error | return something else
return '<p>An Error</p>';
}
}
?>