请注意,此函数在 php 5.4 中只注册一个回调函数。将执行最近设置的回调函数,它们不会像使用 register_shutdown_function() 一样按顺序执行,只是被覆盖。
这是我的测试
<?php
$i = $j = 0;
header_register_callback(function() use(&$i){ $i+=2; });
header_register_callback(function() use(&$i){ $i+=3; });
register_shutdown_function(function() use(&$j){ $j+=2; });
register_shutdown_function(function() use(&$j){ $j+=3; });
register_shutdown_function(function() use(&$j){ var_dump($j); });
while(!headers_sent()) { echo "<!-- ... flushing ... -->"; }
var_dump(headers_sent(), $i);
exit;
?>
结果
headers_sent() - true
$i = 3
$j = 5