HTMLやCSSだと、多少おかしな記述をしても表示されてしまいます。そのため、間違いにも気付きにくいです。
ですが、PHPの場合は設定に合わせてはっきりとエラーを表示してくれます。エラーが表示されれば、間違いにも対処しやすくなりますね。
そこで今回は、
- ・PHPでエラーを表示する方法
- ・PHPで表示するエラーレベルを設定する方法
- ・PHPのエラーレベルの意味
をご紹介します。
目次
PHPのエラーを表示・非表示する方法
PHPのエラーを表示させるにはdisplay_errorsを使います。
PHPファイルごとに設定する
拡張子が.phpのファイルに直接以下の記述することで、そのファイルにだけエラーを表示させることができます。
エラーを表示する
1 2 3 |
<?php ini_set('display_errors', 'On'); ?> |
または
1 2 3 |
<?php ini_set('display_errors', 1); ?> |
エラーを非表示にする
1 2 3 |
<?php ini_set('display_errors', 'Off'); ?> |
または
1 2 3 |
<?php ini_set('display_errors', 0); ?> |
php.iniで設定する
php.iniファイルにはdisplay_errorsという項目があります。
デフォルトではOffになっているので、Onに変更するとエラーが表示されるようになります。
エラーを表示する
1 |
display_errors = On |
エラーを非表示にする
1 |
display_errors = Off |
ただしphp.iniファイルを変更すると、同一サーバー上の全てのファイルに影響がでるので注意が必要です。
また、設定を変更した後にWEBサーバーを再起動する必要があります。
.htaccessまたはhttpd.confで設定する
.htaccessまたはhttpd.confで設定することも可能です。以下の1行を追加するだけでOKです。
エラーを表示する
1 |
php_flag display_errors On |
エラーを非表示にする
1 |
php_flag display_errors Off |
PHPで表示するエラーレベルの設定をする
PHPで表示するエラーレベルを変更するには、error_reportingを使います。
PHPファイルごとに設定する
PHPファイルごとに設定する場合、以下のどちらかの方法で設定できます。
1 2 3 |
<?php error_reporting(E_ALL); ?> |
または
1 2 3 |
<?php ini_set('error_reporting', E_ALL); ?> |
上記の場合、E_ALLと設定しているため全てのエラーが表示されます。E_ALLの部分を変更することで、表示するエラーレベルが設定できます。
php.iniで設定する
php.iniファイルには、error_reportingという項目があります。ここでエラー表示レベルを設定することができます。
1 |
error_reporting = E_ALL |
エラーを表示させた時と同様に、同一サーバー上の全てのファイルに影響がでるので注意が必要です。
また、設定を変更した後にWEBサーバーを再起動する必要があります。
.htaccessまたはhttpd.confで設定する
.htaccessまたはhttpd.confで設定する場合は注意が必要です。他の方法と違い、E_ALLのような定数では設定できません。
以下のように、数値で指定する必要があります。
1 |
php_value error_reporting 32767 |
上記の場合、E_ALLと同じで全てのエラーを表示するという意味になります。詳しくは次の項目をご覧ください。
PHPのエラー表示レベルの意味
続いて、PHPのエラー表示レベルの意味をご紹介します。
定数 | 値 | 説明 |
---|---|---|
E_ERROR | 1 | 実行時の重大なエラー。処理の実行が中断される。 |
E_WARNING | 2 | 実行時の(致命的ではない)警告。処理の実行は中断されない。 |
E_PARSE | 4 | コンパイル時のパースエラー。 |
E_NOTICE | 8 | 実行時の注意メッセージ。 |
E_CORE_ERROR | 16 | PHPの初期始動時点での致命的なエラー。 |
E_CORE_WARNING | 32 | PHPの初期始動時点での(致命的ではない)警告。 |
E_COMPILE_ERROR | 64 | コンパイル時の致命的なエラー。 |
E_COMPILE_WARNING | 128 | コンパイル時の(致命的ではない)警告。 |
E_USER_ERROR | 256 | ユーザーによってtrigger_error()関数で発行されるエラー。 |
E_USER_WARNING | 512 | ユーザーによってtrigger_error()関数で発行される警告。 |
E_USER_NOTICE | 1024 | ユーザーによってtrigger_error()関数で発行される注意。 |
E_STRICT | 2048 | 互換性を維持するために非推奨とされる記述。 |
E_RECOVERABLE_ERROR | 4096 | キャッチできる致命的なエラー。 |
E_DEPRECATED | 8192 | 将来のバージョンで廃止される非推奨のコードへの警告。 |
E_USER_DEPRECATED | 16384 | ユーザーによってtrigger_error()関数で発行された将来的に廃止される非推奨コードへの警告。 |
E_ALL | 32767 | サポートされる全てのエラーと警告。 PHPのバージョンによって異なる。 PHP5.3.xでは「30719」、PHP5.2.xでは「6143」、それより前のバージョンでは「2047」。 |
まとめ
以上、PHPでのエラー表示について
- ・PHPでエラーを表示する方法3つ
- ・PHPで表示するエラーレベルを設定する方法3つ
- ・PHPのエラーレベルの意味
をご紹介しました。エラーはプログラミングにつきものです。エラー表示をうまく使いこなして、プログラミング学習を進めましょう!