ob_list_handlers

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

ob_list_handlers列出所有正在使用的输出处理器

说明

ob_list_handlers(): array

列出所有正在使用的输出处理器。

参数

此函数没有参数。

返回值

这将返回一个包含正在使用的输出处理器(如果有)的数组。

如果 output_buffering 启用且没有设置 output_handler,或者没有回调或 null 传递给 ob_start(),则返回 "default output handler"。启用 output_buffering 并设置 output_handler 等同于将一个 内部(内置)函数 传递给 ob_start().

如果将一个 可调用 传递给 ob_start(),则返回 可调用完全限定名。如果 可调用 是一个实现了 __invoke() 的对象,则返回该对象的 完全限定名__invoke() 方法。如果 可调用 是一个 Closure,则返回 "Closure::__invoke"

范例

范例 #1 ob_list_handlers() 范例

<?php
// 使用 output_buffering=On,没有设置 output_handler
var_dump(ob_list_handlers());
ob_end_flush();

// 没有回调或 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();

// 一级可调用
$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"
}

参见

  • ob_end_clean() - 清理(擦除)活动输出缓冲区的内容并关闭它
  • ob_end_flush() - 刷新(发送)活动输出处理器的返回值,并关闭活动输出缓冲区
  • ob_get_flush() - 刷新(发送)活动输出处理器的返回值,返回活动输出缓冲区的内容并关闭它
  • ob_start() - 打开输出缓冲

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top