如果在启动新的缓冲区时已经存在一个活跃的输出缓冲区,那么新的缓冲区将会嵌套在先前活跃的缓冲区内。无论是否嵌套,内部缓冲区的行为都将保持一致,外部缓冲区不会再次缓冲内部的缓冲输出。只有当内部缓冲区冲刷的输出才会被外部缓冲区缓冲。
大多数 ob_*
函数只能与活跃的输出缓冲区(最后一个启动的)一起使用,
因此只能冲刷、清空和关闭活跃的缓冲区。可以使用的函数有
ob_list_handlers(),它返回所有正在使用的输出处理程序的列表,
以及 ob_get_status(),它可以返回活跃缓冲区的信息或所有正在使用的缓冲区的信息。
调用 ob_get_level() 或 ob_get_status() 将返回活跃输出缓冲区的嵌套级别。
ob_get_level() 和 ob_get_status() 之间相同级别的值相差一。
对于 ob_get_level(),第一个级别是 1
,
而对于 ob_get_status(),第一个级别是 0
。