如果在启动新缓冲区时有输出缓冲区处于活动状态,则新缓冲区将在先前活动的缓冲区内嵌套。无论是否嵌套,内部缓冲区都将以相同的方式运行,但它缓冲的输出将不会由外部缓冲区缓冲。只有内部缓冲区刷新的输出才会由外部缓冲区缓冲。
大多数 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
。