keshipi's blog

いつでも自分を振り返れるために書きます

PHPのErrorがわからない

PHPのError

コーディングや実行時に発生する問題を、 エラー (error) や警告 (warning) そして注意 (notice) などの形式で報告するもの。

PHP 7より前のError

Catchできない。 エラーのレベルは様々で代表的なもので下記のようなものがある。 E_ERROR E_WARNING E_PARSE E_NOTICE その他の定義済み定数

エラーが発生した時にPHPの挙動を決める項目

  • error_reporting どのレベルのエラーをユーザに報告するかを決定する。 開発中はE_ALLにすると、すべてのエラーが報告されるので問題が発生しやすそうな箇所で気づきやすくなる。
  • display_errors エラーの内容を出力するかどうか。 運用時は無効にするべき。
  • log_errors エラー発生時にログを記録するかどうか。

ユーザ定義のエラーハンドラ

set_error_handler()で自作のエラーハンドラを設定することができる。

PHP 7以降のError

Catchできる。ただし、Exceptionクラスを継承しているわけではない。 クラスとして存在する。 Throwableインターフェースを実装している。