このような問題が発生しました。マシン (MAX OS、PHP5.4.24) にインストールし、設定ファイルでエラー報告をオンにしました (display_errors = On; and error_reporting = E_ALL & ~E_NOTICES)。プログラムでエラー報告をオフにしたいのですが、
ini_set('display_errors', 0);
効果がありません。上記 2 つの機能を使用した場合でも、必ず致命的なエラーが報告されます。ブロックする方法はないのでしょうか?設定ファイルをOFFに変更する必要があるのでしょうか?
そこでマニュアルを見てみました。本当にこんなことわざがあります:
注:
display_errors は実行時に (ini_set() を使用して) 設定することもできますが、スクリプトで致命的なエラーが発生した場合、実行時設定は無効になります。この場合、期待された操作が実行されないためです。
上記の文をどう理解しますか?それはプログラムに致命的なエラーがあり、ini_set が無効であることを意味しますか?エラーレポートが表示されるかどうかは、ini 設定に完全に依存します。ということは、レポートを一時的に変更することは不可能なのでしょうか?構成を変更してサービスを再起動することのみが可能です。 。 。 。
教えてください。 。
エラー メッセージをログ ファイルに送信できます
開発環境と実行環境で異なる php.ini を使用することもできます
ini_set('display_errors','off');
error_reporting(0) ) ;
ページの先頭に置きます。
エラーが ini_set('display_errors', 0); の前に表示される場合は、エラー メッセージを出力する必要があります
エラー メッセージを次の場所に置くことができますログ ファイル
開発環境と実行環境で異なる php.ini を使用することもできます
ただしモデレーター、私の会社のサーバーのエラー レポートは設定ファイルで開かれていますが、致命的なエラーが発生した場合はいいえエラーが報告される前に、プログラムの先頭で ini_set('display_errors', 0); を使用する必要があります。これはなぜですか?
関数にパラメータがない、除数が 0 であるなど、一部のエラーは実行するまで表示されません...
display_errors はエラーを表示することを意味します
オフにすると、エラーはどのように表示されますか?
関数にパラメータがない、除数が 0 であるなど、一部のエラーは実行するまで表示されません...
はい、display_errors が 0 に設定されている場合、エラーは報告されないはずですが、元の投稿でまだ報告されると言いましたよね?
ini_set('display_errors', 0);
ここで発生したエラーは報告されません
あなたは自分で混乱していませんか?
display_errors = On
ここで発生したエラーは報告されます
ini_set('display_errors', 0);
ここで発生したエラーは報告されません
カスタム エラー ハンドラーでは、必要に応じて必要なアクションを実現できます