エラー表示/非表示の設定
PHPファイルで設定する(1)
<?php
// エラーを出力する
ini_set('display_errors', "On");
?>
PHPファイルで設定する(2)
<?php
// エラーを出力する
ini_set( 'display_errors', 1 );
?>
httpd.confや.htaccessで設定する
php_flag display_errors off
php.iniで設定する
display_errors = Off
エラー表示レベルの設定
PHPファイルで設定する(1)
<?php
error_reporting(E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_NOTICE);
?>
PHPファイルで設定する(2)
<?php
ini_set('error_reporting', E_ALL);
?>
httpd.confや.htaccessで設定する
# E_ALL 等はPHPの定数で .htaccess では使えないため数字に変換する
# E_ALL & ~E_NOTICE & ~E_DEPRECATED は10進数で 6135
php_value "error_reporting" 6135
php.iniで設定する
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
よく設定するエラー表示レベル
E_NOTICE(注意メッセージ)以外の全てのエラーを表示する。
error_reporting = E_ALL & ~E_NOTICE
E_NOTICE(注意メッセージ)とE_DEPRECATED(推奨エラー)は表示しない。
error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_NOTICE
致命的なエラーのみ表示する。
error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR
実行時エラーのみ表示する。
error_reporting = E_ERROR | E_WARNING | E_PARSE
実行時エラー+注意メッセージ
error_reporting = E_ERROR | E_WARNING | E_PARSE | E_NOTICE
エラー表示レベルの書き方と意味
よくある設定の「E_NOTICE 以外の全てのエラーを表示する」は...
error_reporting = E_ALL & ~E_NOTICE
ビットで表すと...
0111 1111 1111 1111 and not( 0000 0000 0000 1000 )
notを反転すると...
0111 1111 1111 1111 and 1111 1111 1111 0111
andで統合(両方1の場合だけ1に)すると...
0111 1111 1111 0111
10進法に変換すると...
32759
つまり以下はいずれも同じ意味。
error_reporting = E_ALL & ~E_NOTICE
error_reporting = 32759
error_reporting = E_ALL ^ E_NOTICE
詳しくはPHPマニュアルのビット演算子を確認してください。
エラーレベルの定数
エラーレベルの定数は以下で設定されています。
定数 | 値 | bit | エラーレベル |
---|---|---|---|
E_ERROR | 1 | 0000 0000 0000 0001 | 実行時の重大なエラー。復帰できないエラー。 |
E_WARNING | 2 | 0000 0000 0000 0010 | 実行時の(致命的ではない)警告。 |
E_PARSE | 4 | 0000 0000 0000 0100 | コンパイル時のパースエラー。 |
E_NOTICE | 8 | 0000 0000 0000 1000 | 注意メッセージ。 |
E_CORE_ERROR | 16 | 0000 0000 0001 0000 | PHPの初期始動時点での致命的なエラー。 |
E_CORE_WARNING | 32 | 0000 0000 0000 0001 | PHPの初期始動時点での(致命的ではない)警告。 |
E_COMPILE_ERROR | 64 | 0000 0000 0100 0000 | コンパイル時の致命的なエラー。 |
E_COMPILE_WARNING | 128 | 0000 0000 1000 0000 | コンパイル時の警告(致命的ではない)。 |
E_USER_ERROR | 256 | 0000 0001 0000 0000 | trigger_error()関数で発行されるE_ERROR(重大エラー)。 |
E_USER_WARNING | 512 | 0000 0010 0000 0000 | trigger_error()関数で発行されるE_WARNING(警告)。 |
E_USER_NOTICE | 1024 | 0000 0100 0000 0000 | trigger_error()関数で発行されるE_NOTICE(注意)。 |
E_STRICT | 2048 | 0000 1000 0000 0000 | 互換性を維持するために非推奨とされる記述。PHP 5 以上、7 未満 |
E_RECOVERABLE_ERROR | 4096 | 0001 0000 0000 0000 | キャッチできる致命的なエラー。PHP 5.2.0 以上 |
E_DEPRECATED | 8192 | 0010 0000 0000 0000 | 将来のバージョンで動作しなくなる非推奨コード。PHP 5.3.0 以上 |
E_USER_DEPRECATED | 16384 | 0100 0000 0000 0000 | trigger_error()関数で発行されるE_DEPRECATED(非推奨コード)。 |
E_ALL(PHP 5.2.0未満) | 2047 | 0000 0111 1111 1111 | サポートされる全てのエラーと警告。E_STRICT レベルのエラーは除く。 |
E_ALL(PHP 5.2.x) | 6143 | 0001 0111 1111 1111 | |
E_ALL(PHP 5.3.x) | 30719 | 0111 0111 1111 1111 | |
E_ALL(PHP 5.4.x) | 32767 | 0111 1111 1111 1111 | サポートされる全てのエラーと警告。E_STRICT レベルのエラーを含む。 |