新しいバッファが開始されたときに、既にアクティブな出力バッファがある場合、 新しいバッファは、以前にアクティブだったバッファの内部にネストされます。 ネストされたバッファは、ネストされているかどうかに関係なく同じ動作をしますが、 ネストされたバッファによってバッファリングされた出力は、 以前にアクティブだった外側のバッファにはバッファリングされません。 ネストされたバッファからフラッシュされた出力のみが、 外側のバッファによってバッファリングされます。
ほとんどの ob_*
関数は、アクティブな出力バッファ(最後に開始されたもの)に対してのみ動作するため、
アクティブなバッファのみをフラッシュ、クリーン、オフにすることができます。
それ以外のバッファに対して動作する関数は、
使用中のすべての出力ハンドラのリストを返す
ob_list_handlers() や、
アクティブなバッファや使用中のすべてのバッファに関する情報を返すことができる
ob_get_status() があります。
ob_get_level() や ob_get_status() をコールすると、アクティブな出力バッファのネストレベルを返します。
ob_get_level()
と ob_get_status()
が指す、同じレベルの値は1つずれています。
ob_get_level() では最初のレベルは
1
であるのに対し、
ob_get_status() の最初のレベルは
0
になります。