PHP で致命的なエラーをインターセプトする方法は?この記事では、PHP の致命的なエラーをインターセプトするために register_shutdown_function 関数を使用する例を中心に紹介します。お役に立てれば幸いです。
プロジェクトに取り組んでいると、不注意から致命的なエラーが発生することがあります。 display_errors がオフに設定されている場合、ユーザーには空白のページが表示されます。 onにすると致命的なエラー情報が表示されます(もちろん普通の人はこんなことはしません)。
それでは、致命的なエラーを事前に捕捉し、独自のカスタムフレンドリーなフォームでユーザーにフィードバックする方法はあるのでしょうか? PHP には register_shutdown_function と呼ばれる関数があり、これを使用すると、実行がシャットダウンされたとき、つまり、スクリプトの実行が完了したとき、または予期せず終了して PHP の実行がシャットダウンされようとしたときに呼び出すことができる別の関数を設定できます。この関数が呼び出されます。
以下の例を参照してください:
<?php $flag = false; function deal_error(){ global $flag; if (!$flag){ die("粗问题啦,请稍后再试"); } return false; } register_shutdown_function("deal_error"); //将因为致命错误而失败 //$obj = new NotExistClass(); //引入未定义的类 require('./test.php'); $flag = true;
プログラムのエントリでフラグを false に設定し、最後にプログラムが正常に実行されることを示す true に設定します。最後にフラグが true でない場合は、途中でエラーが発生したことを意味します。この時点で、 register_shutdown_function が呼び出され、カスタマイズされたエラー結果が出力されます。
上記のクラスが定義されていない、存在しないファイルが導入されている(requireまたはrequire_onceを使用する必要がある)などの場合、致命的なエラーにつながります。もちろん、プログラムに句読点がなかったり、余分な特殊文字などが含まれている場合は、何もすることができません。
関連する推奨事項:
以上がPHP が致命的なエラー インスタンスをインターセプトするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。