ob_list_handlers
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_list_handlers — Lista todos os manipuladores de saída em uso
Parâmetros
Esta função não possui parâmetros.
Valor Retornado
Isso retornará um array com os manipuladores de saída em uso (se houver).
Se output_buffering estiver ativado
e nenhum output_handler estiver definido,
ou nenhuma função de retorno ou null
foi passada para ob_start(),
"default output handler"
é retornado.
Ativar output_buffering
e definir um output_handler
é equivalente a passar
uma função interna (integrada)
para ob_start().
Se um callable foi passado para ob_start(),
o nome totalmente qualificado
do callable é retornado.
Se o callable for um objeto que implementa
__invoke(),
o nome totalmente qualificado
do método __invoke()
do objeto é retornado.
Se o callable for um Closure,
"Closure::__invoke"
será retornado.
Exemplos
Example #1 Exemplo de ob_list_handlers()
<?php
// usando output_buffering=On, nenhum manipulador de saída definido
var_dump(ob_list_handlers());
ob_end_flush();
// nenhuma chamada de retorno ou null
ob_start();
var_dump(ob_list_handlers());
ob_end_flush();
// função anônima
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();
// função seta
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();
// chamável de primeira classe
$firstClassCallable = userDefinedFunction(...);
ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();
// função interna (integrada)
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();
// função definida pelo usuário
function userDefinedFunction($string, $flags) { return $string; };
ob_start('userDefinedFunction');
var_dump(ob_list_handlers());
ob_end_flush();
class MyClass {
public static function staticHandle($string) {
return $string;
}
public static function handle($string) {
return $string;
}
public function __invoke($string) {
return $string;
}
}
// classe e método estático
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();
// objeto e método não estático
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();
// objeto invocável
ob_start(new MyClass);
var_dump(ob_list_handlers());
ob_end_flush();
?>
O exemplo acima produzirá:
array(1) { [0]=> string(22) "default output handler" } array(1) { [0]=> string(22) "default output handler" } array(1) { [0]=> string(7) "print_r" } array(1) { [0]=> string(19) "userDefinedFunction" } array(1) { [0]=> string(17) "Closure::__invoke" } array(1) { [0]=> string(17) "Closure::__invoke" } array(1) { [0]=> string(17) "Closure::__invoke" } array(1) { [0]=> string(21) "MyClass::staticHandle" } array(1) { [0]=> string(15) "MyClass::handle" } array(1) { [0]=> string(17) "MyClass::__invoke" }
Veja Também
- ob_end_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo e desliga-o
- ob_end_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo e desliga o buffer de saída ativo
- ob_get_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo, retorna o conteúdo do buffer de saída ativo e desliga-o
- ob_start() - Ativa o buffer de saída