ホームページ >バックエンド開発 >PHPチュートリアル >PHP での致命的なエラーをインターセプトするための register_shutdown_function の使用例、fatalerror_PHP チュートリアル

PHP での致命的なエラーをインターセプトするための register_shutdown_function の使用例、fatalerror_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:56:23790ブラウズ

PHP の register_shutdown_function 関数を使用して致命的なエラー、fatalerror をインターセプトする例

プロジェクトに取り組んでいると、不注意によって致命的なエラーが発生することがあります。 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 が呼び出され、カスタマイズされたエラー結果が出力されます。

上記のクラスが定義されていない、存在しないファイルが導入されている(requireまたはrequire_onceを使用する必要がある)などの場合、致命的なエラーにつながります。もちろん、プログラムに句読点がなかったり、余分な特殊文字などが含まれている場合は、何もすることができません。

http://www.bkjia.com/PHPjc/987895.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/987895.html技術記事 PHP の register_shutdown_function 関数を使用して致命的なエラーをインターセプトする例 プロジェクトに取り組んでいると、不注意によって致命的なエラーが発生することがあります。 display_errors が...
に設定されている場合
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。