(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_list_handlers — Возвращает список активных обработчиков вывода
У этой функции нет параметров.
Возвращает массив со списком активных обработчиков вывода, если есть.
Возвращает строку "default output handler"
,
если настройка output_buffering включена
и настройка output_handler не установлена,
или в функцию ob_start() не передана callback-функция или вместо неё передано значение null
.
Включение настройки output_buffering
и установка значения для настройки output_handler
эквивалентно передаче в функцию ob_start()
внутренней (встроенной) функции.
Возвращает абсолютное имя
переданной в параметр callable функции,
если в параметр callable функции ob_start() была передана callback-функция.
Возвращает абсолютное имя
объекта с методом __invoke(),
если параметр callable — это объект, который реализует
метод __invoke().
Возвращает строку "Closure::__invoke"
,
если параметр callable — это объект класса Closure.
Пример #1 Пример использования функции ob_list_handlers()
<?php
// настройка включена output_buffering=On, значение для настройки output_handler не установлено
var_dump(ob_list_handlers());
ob_end_flush();
// callback-функция не передана или null
ob_start();
var_dump(ob_list_handlers());
ob_end_flush();
// анонимная функция
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();
// стрелочная функция
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();
// callback-функция как объект первого класса
$firstClassCallable = userDefinedFunction(...);
ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();
// внутренняя (встроенная функция)
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();
// пользовательская функция
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;
}
}
// класс и статический метод
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();
// объект и нестатический метод
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();
// объект вызываемого класса
ob_start(new MyClass);
var_dump(ob_list_handlers());
ob_end_flush();
?>
Результат выполнения приведённого примера:
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" }