(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_list_handlers — Liste les gestionnaires d'affichage utilisés
Cette fonction ne contient aucun paramètre.
Retourne un tableau avec le gestionnaire d'affichage en cours d'utilisation (s'il existe).
Si output_buffering est activé
et qu'aucun output_handler n'est défini,
ou si aucune fonction de rappel ou null
n'a été passé à ob_start(),
"default output handler"
est renvoyé.
Activer output_buffering
et définir un output_handler
équivaut à passer
une fonction interne (intégrée)
à ob_start().
Si un callable a été passé à ob_start(),
le nom complètement qualifié
du callable est renvoyé.
Si le callable est un objet implémentant
__invoke(),
le nom complètement qualifié
de la méthode __invoke() de l'objet est renvoyé.
Si le callable est une Closure,
"Closure::__invoke"
est renvoyé.
Exemple #1 Exemple avec ob_list_handlers()
<?php
// utilisation output_buffering=On, sans output_handler défini
var_dump(ob_list_handlers());
ob_end_flush();
// aucun rappel ou null
ob_start();
var_dump(ob_list_handlers());
// Fonction anonyme
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();
// fonction fléchée
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();
// callable de première classe
$firstClassCallable = userDefinedFunction(...);
ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();
// fonction interne (intégrée)
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();
// fonction définie par l'utilisateur
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 et méthode statique
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();
// objet et méthode non statique
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();
// objet invoquable
ob_start(new MyClass);
var_dump(ob_list_handlers());
ob_end_flush();
?>
L'exemple ci-dessus va afficher :
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" }