(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_list_handlers — Kullanımdaki çıktı eylemcileri listeler
Bu işlevin bağımsız değişkeni yoktur.
Kullanımdaki çıktı eylemcileri (varsa) içeren bir dizi döndürür.
Eğer çıktı tamponlaması etkinse
ve output_handler atanmamışsa veya
ob_start() ile bir geriçağırım işlevi belirtilmemişse ya
da null
belirtilmişse "öntanımlı çıktı işleyicisi" döner.
çıktı tamponlamasını
etkinleştirmek ve bir çıktı işleyicisi
belirtmek ob_start() işlevine bir
dahili (yerleşik) işlev aktarmaya
eşdeğerdir.
ob_start() işlevine bir geriçağırım işlevi aktarılmışsa,
geriçağırım işlevinin tam
nitelenmiş ismi döner. Geriçağırım işlevi olarak
__invoke() sınıfını
gerçekleyen bir nesne belirtilmişse bu nesnenin
__invoke() yönteminin
tam nitelenmiş ismi döner.
Geriçağırım işlevi olarak bir Closure belirtilmişse,
"Closure::__invoke"
döner.
Örnek 1 - ob_list_handlers() işlevi
<?php
// output_buffering=On ve çıktı işleyici yok
var_dump(ob_list_handlers());
ob_end_flush();
// geriçağırım yok ya da null
ob_start();
var_dump(ob_list_handlers());
ob_end_flush();
// anonim işlev
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();
// ok işlevi
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();
// kullanıcı tanımlı işlev ve __invoke
$firstClassCallable = userDefinedFunction(...);
ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();
// dahili (yerleşik) işlev
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();
// kullanıcı tanımlı işlev
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;
}
}
// sınıf ve statik yöntem
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();
// nesne ve statik olmayan yöntem
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();
// çağrılabilir nesne
ob_start(new MyClass);
var_dump(ob_list_handlers());ob_end_flush();
?>
Yukarıdaki örneğin çıktısı:
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" }