PHP には、複数のエラーと警告があります。これらを以下に示します。
表 14-1. PHPエラーの型
| 値 | 記号 | 説明 | note |
|---|---|---|---|
| 1 | E_ERROR | 致命的なランタイムエラー | |
| 2 | E_WARNING | ランタイム警告(致命的でないエラー) | |
| 4 | E_PARSE | コンパイル時のパーサエラー | |
| 8 | E_NOTICE | 実行時の通知(警告よりも重要度は低い) | |
| 16 | E_CORE_ERROR | PHPの初期スタートアップ時に生じた致命的なエラー | PHP 4のみ |
| 32 | E_CORE_WARNING | PHPの初期スタートアップ時に生じた警告(致命的でないエラー) | PHP 4のみ |
| 64 | E_COMPILE_ERROR | 致命的なコンパイルエラー | PHP 4のみ |
| 128 | E_COMPILE_WARNING | コンパイル時の警告(致命的ではないエラー) | PHP 4のみ |
| 256 | E_USER_ERROR | ユーザが生成したエラーメッセージ | PHP 4のみ |
| 512 | E_USER_WARNING | ユーザが生成した警告メッセージ | PHP 4のみ |
| 1024 | E_USER_NOTICE | ユーザが生成した通知メッセージ | PHP 4のみ |
| E_ALL | 上記のもの全て | PHP 4のみ |
上記の値(数値または記号のどちらか)は、レポートするエラーの指定する ビットマスクを作成する際に使用されます。複数のエラー型を組み合わせ たりマスクしたりするためにビット演算子 '|'、'&'、'~' を使用する ことが可能です。デフォルトの設定は通知以外の全てのエラーを出力する ようになっており、PHP4ではE_ALL & ~E_NOTICE、 (PHP3は定数記号をサポートしていないため、)PHP3では7となっています。
この設定は、設定ファイルのerror_reporting命令で変更可能です。また、 Apacheのhttpd.confファイルのphp_error_reporting命令(PHP3では php3_error_reporting)で設定することも可能です。また、実行時にスクリ プト内で関数error_reporting()を使用して設定する ことも可能です。
| 警告 |
PHP3からPHP4にコードまたはサーバーを更新る場合、これらの設定および error_reporting()のコールを確認する必要がありま す。新しいエラー型、特にE_COMPILE_ERRORの出力を無効にしたいと思う という人もいると思われます。これを無効にすると空の文書が出力される 可能性があり、この場合には、生じた現象や問題の発見に関するフィード バックは全く得られません。 |
全ての PHP 式 は、先頭に "@" を付けてコールすることも可能です。 この場合、その式に関するエラーメッセージの出力がオフにされます。 そのような式においてエラーが発生し、 track_errors 機能が有効の 場合、グローバル変数 $php_errormsg からエラーメッセージを 得ることができます。
| 警告 |
現在の実装では、"@"は、スクリプトの実行を終了するような致命的なエ ラー出力さえ無効にします。 |