PHP での出力バッファリングは楽しいものです。多くのことを簡素化します。スクリプトの上部で ob_start() を使用し、下部で ob_get_clean() (またはその他の関数) を使用します。
これら 2 つの呼び出しの間に、親呼び出しに干渉することなく、これらの関数を再度呼び出すことができます。
このタイプのコードは有効ですか? (それはうまくいきますが...) これは良い習慣ですか?
<?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>';
}
}
?>