PHPエラーレベルの定数を設定する方法

PHPで出力したエラーを設定することができます。その方法を紹介します。

抜粋:

PHPで出力したエラーを設定することができます。その方法を紹介します。

error_reporting

error_reportingにはエラー出力レベルを設定します。

ここに設定されたエラーの種類が出力できます。

php.iniでも設定できますが、PHP実行時にerror_reporting()関数で設定することができます。

エラーレベルは定数で定義済みなので、その定数を使って設定します。

以下が定数の一覧表です。

エラーレベルの定数

定数エラーレベル
E_ERROR1実行時の重大なエラー(復帰できないエラー)
E_WARNING2実行時の警告(致命的ではないエラー)
E_PARSE4コンパイル時のパースエラー
E_NOTICE8実行時の注意(エラーを発しうる状況に遭遇)
E_CORE_ERROR16PHPの初期始動時点での致命的なエラー
E_CORE_WARNING32PHPの初期始動時点での警告(致命的ではない)
E_COMPILE_ERROR64コンパイル時の致命的なエラー
E_COMPILE_WARNING128コンパイル時の警告(致命的ではない)
E_USER_ERROR256trigger_error()関数で発行されるE_ERROR(重大エラー)
E_USER_WARNING512trigger_error()関数で発行されるE_WARNING(警告)
E_USER_NOTICE1024trigger_error()関数で発行されるE_NOTICE(注意)
E_STRICT2048コードの互換性を維持するためにPHPがコードの変更を提案
E_RECOVERABLE_ERROR4096キャッチできる致命的なエラー(PHP 5.2.0 以上)
E_DEPRECATED8192将来のバージョンで動作しなくなるコードの警告(PHP 5.3.0 以上)
E_USER_DEPRECATED16384trigger_error()関数で発行されるE_DEPRECATED(警告)
E_ALL(PHP 5.2.0未満)2047サポートされる全てのエラーと警告(以降に追加されたものを除く)
E_ALL(PHP 5.2.x)6143E_RECOVERABLE_ERRORが追加
E_ALL(PHP 5.3.x)30719E_DEPRECATED と E_USER_DEPRECATED が追加
E_ALL(PHP 5.4.x)32767E_STRICT が 追加

設定方法

ここではerror_reporting()関数を使って設定する方法を説明します。

書式
error_reporting([ int $level ])

関数の引数にエラーレベル定数を指定します。

引数に0を指定するとすべてのエラー出力を停止します。

例)
// 全てのエラー出力をオフにする
error_reporting(0);
// 一般的な実行時エラーを表示する
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// E_NOTICEを加えるとエラーになる可能性のある記述も表示される
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// E_NOTICE以外の全てのエラーを表示する
error_reporting(E_ALL & ~E_NOTICE);

またini_set()関数を使ってエラーレベルを設定することもできます。

書式
ini_set( string $varname, string $newvalue )

第1引数に設定オプション、第2引数に値を設定します。

例)
// error_reporting(E_ALL); と同じ
ini_set('error_reporting', E_ALL);

参照

公式サイト:https://www.php.net/manual/ja/function.error-reporting.php