如果啟動新緩衝區時存在作用中的輸出緩衝區,則新緩衝區將巢狀於先前作用中的緩衝區內部。內部緩衝區的行為方式相同,無論它是否巢狀,但它緩衝的輸出將不會被外部緩衝區緩衝。只有內部緩衝區刷新的輸出才將被外部緩衝區緩衝。
大多數 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
。