プロジェクトに取り組んでいると、不注意によって致命的なエラーが発生することがあります。 display_errors がオフに設定されている場合、ユーザーには空白のページが表示されます。 onにすると致命的なエラー情報が表示されます(もちろん普通の人はこんなことはしません)。
では、致命的なエラーを事前に捕捉し、独自のカスタムフレンドリーなフォームでユーザーにフィードバックするには、どのような方法を使用できるでしょうか? PHP には register_shutdown_function と呼ばれる関数があり、これを使用すると、実行がシャットダウンされたとき、つまり、スクリプトの実行が完了したとき、または予期せず終了して PHP の実行がシャットダウンされようとしたときに呼び出すことができる別の関数を設定できます。この関数が呼び出されます。
以下の例をご覧ください:
コードをコピーします コードは次のとおりです:
$flag = false;
関数 deal_error(){
グローバル $フラグ;
If (!$flag){
DIE (「大まかな問題です。後でもう一度試してください。」);
}
false を返します;
}
register_shutdown_function("deal_error");
//致命的なエラーで失敗します
//$obj = new NotExistClass() //未定義のクラスの導入
;
require('./test.php');
$flag = true;
プログラムのエントリでフラグを false に設定し、最後にプログラムが正常に実行されていることを示す true に設定します。最後にフラグが true でない場合は、途中でエラーが発生したことを意味します。この時点で、 register_shutdown_function が呼び出され、カスタマイズされたエラー結果が出力されます。