何を無効にするように指示しても、PHP が強制的にエラーを表示する理由は何ですか?
私が試してみました
error_reporting(0);
ini_set('display_errors', 0);
運がない。
何を無効にするように指示しても、PHP が強制的にエラーを表示する理由は何ですか?
私が試してみました
error_reporting(0);
ini_set('display_errors', 0);
運がない。
http://uk.php.net/error_reportingにあるマニュアルの警告に注意してください。
ほとんどの E_STRICT エラーはコンパイル時に評価されるため、このようなエラーは、E_STRICT エラーを含めるように error_reporting が拡張されたファイルでは報告されません (逆も同様です)。
基礎となるシステムが E_STRICT エラーを報告するように構成されている場合、これらはコードが考慮される前に出力される可能性があります。error_reporting/ini_set はランタイム評価であることを忘れないでください。「実行前」フェーズで実行されたものは、その効果を確認できません。
あなたのコメントに基づいて、あなたのエラーは...
解析エラー: 構文エラー、予期しない T_VARIABLE、',' または ';' が必要です /usr/home/REDACTED/public_html/dev.php の 11 行目
その後、同じ一般的な概念が適用されます。コードは構文的に無効であるため、実行されません (';' を忘れました)。したがって、エラー報告の変更が発生することはありません。
これを修正するには、システム レベルのエラー レポートを変更する必要があります。たとえば、Apache では次の場所に配置できる場合があります。
php_value error_reporting 0
.htaccess ファイルでそれらをすべて抑制しますが、これはシステム構成に依存します。
実用的には、構文エラーのあるファイルを書き込まないでください:)
エラーが表示されないようにするには、次のことができます
phpinfoを使用してロードされた php.ini を見つけ、それを編集してエラーを非表示にします。スクリプトに入力した内容をオーバーライドします。
set_error_handler()
スクリプトのどこかで使用されていますか? これは をオーバーライドしますerror_reporting(0)
。
php_admin_valueを使用して Apache で設定が指定されている場合、.htaccess または実行時に変更することはできません。
参照:構成設定を変更する方法
実用的には、構文エラーのあるファイルを書き込まないでください:)
ファイルに構文エラーがないことを確認するには、次を実行します。
php -l YOUR_FILE_HERE.php
これにより、次のようなものが出力されます。
PHP Parse error: syntax error, unexpected '}' in Connection.class.php on line 31
それらを表示する代わりにログに記録するには、log_errorsを使用します。