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