Если при запуске нового буфера есть активный буфер вывода, новый буфер будет вложен внутрь предыдущего активного буфера. Внутренний буфер будет вести себя так же как и невложенный, но вывод, который он буферизовал, не будет буферизован внешним буфером. Вывод, сброшенный внутренним буфером, будет только буферизован внешним буфером.
Большинство 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
.