(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_list_handlers — Lista todos os manipuladores de saída em uso
Esta função não possui parâmetros.
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.
Exemplo #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" }