エラーメッセージ

エラーメッセージ

 状態:  閲覧数:7,368  投稿日: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

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



週間人気ページランキング / 10-29 → 11-4
順位 ページタイトル抜粋 アクセス数
1 T_CONSTANT_ENCAPSED_STRING | エラーメッセージ 7
2 コード例 … 「例外処理」はネストすることができる 4
3 PHP用語 3
4 http_build_queryとは? / 構文 /パラメータ 2
4 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
4 dirname() / (__FILE__ ) / basename( dirname( __FILE__ ) ); | 関数 2
4 PHPで定数を定義する方法は2種類ある / 配列定数の定義 2
4 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 2
5 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 1
5 ( ! ) Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in ★★★ headless-chromium-php/vendor/wrench/wrench/lib/Wrench/Protocol/Protocol.php | エラーメッセージ 1
5 Fatal error(エラーメッセージ) カテゴリー 1
5 位置を表現するメタキャラクタ(アンカー) 1
5 Warning: include() [function.include]: Failed opening '**.php' for inclusion (in | Warning(エラーメッセージ) 1
5 Maximum function nesting level of '256' reached | Fatal error(エラーメッセージ) 1
5 creating database ERROR!!: exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 table tally already exists' | SQLite(エラーメッセージ) 1
5 session.gc_maxlifetime | セッション 1
5 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1030 Got error 139 from storage engine' | Fatal error(エラーメッセージ) 1
5 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ○○.php on line △△ | Warning(エラーメッセージ) 1
5 スコープ定義演算子(::) | クラスとオブジェクト 1
5 セッション単位 | セッション 1
2025/11/5 1:01 更新