ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_list_handlersLista todos os manipuladores de saída em uso

Descrição

ob_list_handlers(): array

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