PHPのerror_reporting()関数の使い方を徹底解説!エラーレベルの設定方法
PHPのerror_reporting()関数とは
error_reporting()関数は、PHPスクリプトでどのエラーを報告するかを指定するための関数です。実行時にerror_reportingディレクティブを設定し、スクリプトの実行期間中、指定したエラーレベルを適用します。
PHPには多くのエラーレベルが存在しますが、この関数を使うことでスクリプトの実行時にレベルを動的に変更できます。また、levelパラメータを省略した場合は、現在のエラーレポートレベルを返し、指定した場合は変更前の(古い)エラーレポートレベルを返します。
構文
error_reporting(level)
パラメータ
level − 現在のスクリプトに対して設定するエラーレポートレベルを指定します。数値と定数名のどちらでも指定可能です。
戻り値
error_reporting()関数は、levelパラメータが指定された場合は変更前のエラーレポートレベルを、指定されなかった場合は現在のエラーレポートレベルを返します。
エラーレベル一覧
PHPで定義されている主なエラーレベルは以下のとおりです。
| 値 | 定数 | 説明 |
|---|---|---|
| 1 | E_ERROR | 致命的な実行時エラー。回復不可能で、スクリプトの実行が中断されます。 |
| 2 | E_WARNING | 致命的ではない実行時エラー。スクリプトの実行は中断されません。 |
| 4 | E_PARSE | コンパイル時のパースエラー。パーサーによってのみ生成されます。 |
| 8 | E_NOTICE | 実行時の通知。スクリプトがエラーの可能性があるものを検出したが、通常の実行でも発生しうるものです。 |
| 16 | E_CORE_ERROR | PHPの起動時に発生する致命的なエラー。PHPコアにおけるE_ERRORに相当します。 |
| 32 | E_CORE_WARNING | PHPの起動時に発生する致命的でないエラー。PHPコアにおけるE_WARNINGに相当します。 |
| 64 | E_COMPILE_ERROR | 致命的なコンパイル時エラー。Zendスクリプティングエンジンが生成するE_ERRORに相当します。 |
| 128 | E_COMPILE_WARNING | 致命的でないコンパイル時エラー。Zendスクリプティングエンジンが生成するE_WARNINGに相当します。 |
| 256 | E_USER_ERROR | ユーザーが生成した致命的なエラー。trigger_error()関数を使ってプログラマが設定したE_ERRORに相当します。 |
| 512 | E_USER_WARNING | ユーザーが生成した致命的でない警告。trigger_error()関数を使ってプログラマが設定したE_WARNINGに相当します。 |
| 1024 | E_USER_NOTICE | ユーザーが生成した通知。trigger_error()関数を使ってプログラマが設定したE_NOTICEに相当します。 |
| 2048 | E_STRICT | 実行時の通知。コードの相互運用性と互換性を高めるために、PHPがコードの変更を提案するものです。 |
| 4096 | E_RECOVERABLE_ERROR | キャッチ可能な致命的なエラー。E_ERRORに似ていますが、ユーザー定義のハンドラで捕捉できます(set_error_handler()も参照)。 |
| 8191 | E_ALL | E_STRICTレベルを除く、すべてのエラーと警告。 |
使用例
以下はerror_reporting()関数の基本的な使用例です。
<?php // エラー報告をオフにする error_reporting(0); // 実行時エラーを報告する error_reporting(E_ERROR | E_WARNING | E_PARSE); ?>
上記の例では、まずerror_reporting(0)ですべてのエラー報告を無効にし、その後、E_ERROR、E_WARNING、E_PARSEをビット演算子「|」で組み合わせて、実行時エラーのみを報告するように設定しています。
すべてのエラーを報告する例
開発環境では、すべてのエラーを報告する設定が推奨されます。以下の例では、E_ALLを指定してすべてのエラーと警告を報告するようにしています。
<?php error_reporting(E_ALL); ?>
まとめ
error_reporting()関数は、PHPアプリケーションのデバッグやエラー管理において非常に重要な役割を果たします。開発環境ではE_ALLを指定してすべてのエラーを検出し、本番環境ではエラー報告を適切に制御することで、セキュリティリスクを低減できます。状況に応じて適切なエラーレベルを設定しましょう。
-
PHPのlog()関数とは?自然対数の計算方法と使い方を解説
定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l
-
PHPのlibxml_get_errors()関数の使い方を徹底解説
PHPのlibxml_get_errors()関数は、libxmlエラーバッファに格納されたXML処理時のエラー情報を配列として取得するための関数です。DOMDocumentやSimpleXMLなどでXMLを解析する際に発生したエラーを詳細に確認したい場合に活用されます。基本構文libxml_get_errors()パラメータこの関数にはパラメータはありません。戻り値libxml_get_errors()関数は、LibXMLErrorオブジェクトの配列を返します。libxmlエラーバッファにエラーが1件も存在しない場合は、空の配列が返されます。各LibXMLErrorオブジェクトには、エラーレ