Se houver um buffer de saída ativo quando um novo buffer for iniciado, o novo buffer será aninhado dentro do buffer ativo anteriormente. O buffer interno se comportará da mesma maneira, independentemente de estar aninhado, mas a saída armazenada em buffer por ele não será armazenada em buffer pelo buffer externo. Somente a saída liberada pelo buffer interno será armazenada no buffer externo.
A maioria das funções ob_*
só funcionam
com o buffer de saída ativo (o último iniciado),
portanto, apenas o buffer ativo pode ser descarregado, limpo e desligado.
As funções que funcionam com outros buffers são
ob_list_handlers()
que retorna a lista de todos os manipuladores de saída em uso
e ob_get_status()
que pode retornar informações apenas sobre o buffer ativo
ou sobre todos os buffers em uso .
Chamar ob_get_level() ou ob_get_status() retornará o nível de aninhamento do buffer de saída ativo.
O valor para níveis idênticos entre ob_get_level()
e ob_get_status() está desfasado em um.
Para ob_get_level()
o primeiro nível é 1
,
enquanto para ob_get_status()
o primeiro nível é 0
.