function fatal_error_handler() {
if ($error = error_get_last()) {
switch ($error['type']) {
case E_ERROR:
$code = 'FATAL ERROR';
break;
case E_CORE_ERROR:
$code = 'CORE ERROR';
break;
case E_CORE_WARNING:
$code = 'CORE WARNING';
break;
default:
$code = 'UNKNOWN FATAL ERROR';
}
echo 'An error occurred (Test 1): ' . $code . '<br />';
}
echo 'An error occurred (Test 2): ' . $code . '<br />';
}
register_shutdown_function('fatal_error_handler');
私は現在、register_shutdown_functionを使用して致命的なエラーハンドラーを作成しています。不思議に思うのですが、register_shutdown_functionは自動的に実行/実行されることになっていますか?私は上記のコードのこのブロックだけをテストしてきました。2番目のechoステートメントを意図的に挿入して、自動的に実行され、実際に2番目のechoステートメントが出力されるかどうかを確認しました(致命的なエラーが発生していないため、最初のechoステートメントは出力されません)。