請注意,從 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