web-dev-qa-db-ja.com

PHPの警告メッセージを削除します

PHPコードがあります。実行すると、警告メッセージが表示されます。

これらの警告メッセージを削除/抑制/無視するにはどうすればよいですか?

194
Alireza

あなたは本当に警告を引き起こしているものは何でも直すべきですが、 error_reporting でエラーの可視性を制御することができます。警告メッセージをスキップするには、次のようにします。

error_reporting(E_ERROR | E_PARSE);
301
Tatu Ulmanen

関数呼び出しの前に @ を付けて、すべてのエラーメッセージを抑制することができます。

@yourFunctionHere();
103
PetPaulsen

他のすべてのエラー報告を有効にしたまま警告を抑制するためには:

error_reporting(E_ALL ^ E_WARNING); 
35
Karthik

エラーだけでなく警告も表示したくない場合は

// Turn off all error reporting
error_reporting(0);

エラー報告 - PHP手動

27
mohan.gade

他のすべてのエラーを表示しているときに警告やその他のエラーの種類(通知など)を抑制したい場合は、次のようにします。

error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
12
zstate

core Phpで警告メッセージを非表示にするには、error_reporting(0)を共通のインクルードファイルまたは個々のファイルの先頭に設定します。

Wordpress で警告と通知を隠す 次のコードをwp-config.phpファイルに追加する

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
10
Vijay Lathiya

正確に質問に答えるのではありませんが、状況によってはこれがより良い妥協案だと思います。

サードパーティのライブラリのprintf()ステートメントの結果として警告メッセージが表示されました。その原因が正確にわかっていた - サードパーティがコードを修正している間の一時的な回避策。私は警告が抑制されるべきではないことに同意しますが、警告メッセージが画面上にポップアップ表示されるので私は自分の仕事をクライアントに示すことができませんでした。私の解決策:

printf('<div style="display:none">');
    ...Third-party stuff here...
printf('</div>');

警告はまだ私には思い出させるものとしてページソースにありましたが、クライアントには見えませんでした。

10
DaveWalley

error_reporting を使用して警告を抑制することができますが、もっと良い方法は最初のスクリプトを修正することです。場所。

方法がわからない場合は、質問を編集して、問題の行と表示される警告を表示してください。

7
Pekka 웃

私はもっ​​と良い解決策が.htaccessの設定であると思いますそのようにあなたはアプリケーションのコードを変更する必要はありません。これがApache2用のディレクティブです。

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
5

私はphp.iniで次のようにします。

error_reporting = E_ALL & ~E_WARNING  & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

これは致命的なエラーだけを記録し、警告は記録しません。

5
navid

PHP 7.2には試してみるための例があります。 449行目から始まるphp.iniファイル内の内容の抜粋です。

; Common Values:
;   E_ALL (Show all errors, warnings and notices including coding standards.)
;   E_ALL & ~E_NOTICE  (Show all errors, except for notices)
;   E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding standards warnings.)
;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL

それでそれを読んで、彼らが提供するさまざまな例を試してみてください。変更したら、サーバーを再起動してシナリオをテストします。

0
klewis