エラーメッセージ

エラーメッセージ

 状態:  閲覧数:7,147  投稿日:2010-04-27  更新日:  
■エラーメッセージの構成
PHPが出すエラーメッセージは、3つの要素で構成されている

Parse error: syntax error, unexpected ';' in /***/***.php on line ***
|エラーレベル| メッセージ | ファイルのパスと行番号 |

▼1.「エラーレベル」
エラーの性質(重要度)を示す。構文が間違っている、実行不可能な致命的なものである等。

▼2.「メッセージ」
問題の要素やエラーの性質を補足。原因を特定するために利用する。エラーを発生させたモジュール名やPHPのトークン(これ以上に分解することのできない最小単語)を表示。

▼3.「ファイルのパスと行番号」
エラーの発生個所を示す。あくまでもエラー発生位置を示していて、問題箇所と必ずしも一致するわけではない(エラー原因となる箇所と、エラー発生する箇所は違う場合もある、という意)。この行を基準に、それ以前で原因を探す、ことも多い。

▼1.「エラーレベル」
▽Parse error:
PHPの構文から外れスクリプトとして成り立っていないことを示すエラー。構文が間違っているため、このメッセージが表示されている限り、スクリプトが実行されることはない。
対応するカッコや " がない、変数頭の "$" や文末の ";" 忘れ、演算子の評価順序違いなど、ほとんどが単純な記述ミスや勘違いによるもの。

▽Fatal error:
実行時に出るエラーで、これ以降の処理が実行できないほどの「致命的エラー」を表している。このエラーが発生するとそこで強制終了される。

▽Warning:
実行時に出るエラーで、以降の処理に影響を与える可能性がある「警告」。Warning が発生しても処理は続けられるが、これ以降も関連してエラーが出る可能性が高いので、いくつも発生する場合は初めの Warning から解決することが望ましい。

▽Notice:
プログラムの実行には影響ないけれど、これはこれでいいのかな? 程度の PHP からの「通知」。Notice が発生しても処理継続可能。バグの原因になったりセキュリティホールを生む可能性もあるため、Notice も ゼロになるようなコードを書くことが望ましい。
なお、PHPのデフォルトでは、error_reporting = E_ALL & ~E_NOTICE (Notice以外のエラーを表示)が設定されているため、Notice が表示されることはない。php.ini か error_reporting関数で E_ALL を指定すると全てのエラーメッセージが表示されるようになるので、開発段階ではすべて表示するよう設定することが望ましい。


▼2011.6.6.追記
// 全ての PHP エラーを表示させる
error_reporting(-1);

□使用例:連想配列をunset();後、var_dumpして、下記エラーを確認したかった際、利用
Notice: Undefined index:

□下記でもO.K.
error_reporting(E_ALL); //エラー出力のレベルを設定→すべてのエラー
ini_set("display_errors", "On"); //画面上にエラー出力を表示

□下記だけだと、NG。画面に表示されないので
error_reporting(E_ALL); //エラー出力のレベルを設定→すべてのエラー



syntax error

コメント投稿(ログインが必要)



週間人気ページランキング / 3-4 → 3-10
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 5
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
2 curl で Cookie を使用する 4
3 SQLite(エラーメッセージ) カテゴリー 3
3 Fatal error: Call to undefined method MDB2_Error::execute() in ○○ on line △△ | Fatal error(エラーメッセージ) 3
3 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 3
3 「POSIX正規表現」と「PCRE正規表現」の違い 3
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 3
3 session_start() | セッション 3
4 バッファリング | 出力バッファリング制御(関数) 2
4 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
4 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
4 Fatal error: Uncaught HeadlessChromium\Exception\OperationTimedOut: Operation timed out (3sec) in | Fatal error(エラーメッセージ) 2
4 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 2
4 Notice(エラーメッセージ) カテゴリー 2
4 register_shutdown_function | 関数処理 関数 2
5 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused | Fatal error(エラーメッセージ) 1
5 コード例 … 「例外処理」はネストすることができる 1
5 親クラスのコンストラクタは自動実行されないから、明示的に呼び出す必要がある 1
5 シリアライズ(シリアル化) | 関数 1
2025/3/11 1:01 更新