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>';
}
}
?>