変数名の $ を書き忘れたときの Parse error
PHPの変数は必ず $ から始まります。$を付け忘れると、その識別子は変数ではなく定数名として解釈され、後に続く = の時点で構文エラーになります。
エラーメッセージの読み方
Parse error: syntax error, unexpected token "=" in main.php on line 2
main.php- ファイル名
2- 行番号 — PHPが構文解析を諦めた位置
Parse error- エラー種別 — 実行前の構文チェックで検出されました
syntax error, unexpected token "="- 内容 — 期待していたもの、または受け付けられなかったもの
このエラーが出る典型パターン
パターン1
1 <?php 2 y = 10; ^ 3 echo $y;
Parse error: syntax error, unexpected token "=" in main.php on line 2
$の無いyは変数ではなく定数名として読まれます。定数名の直後に=を続けることはできないため、構文エラーになります。
直し方: (空) を $ にします。
広告
広告スロット(未設定)
パターン2
1 <?php 2 total = 5; ^ 3 echo $total;
Parse error: syntax error, unexpected token "=" in main.php on line 2
totalも同様です。$を付け忘れると変数として認識されません。
直し方: (空) を $ にします。
パターン3
1 <?php 2 score = 0; ^ 3 echo $score;
Parse error: syntax error, unexpected token "=" in main.php on line 2
scoreの前にも$が必要です。PHPの変数は必ず$から始まるという規則に例外はありません。
直し方: (空) を $ にします。
よくある誤解
「$を忘れても変数名として扱ってくれるはず」という思い込みは誤りです。$の無い識別子は定数の名前として解釈が始まるため、そこに=を続けると構文として成立しません。
まとめ
変数名の $ を書き忘れたときの Parse errorは初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。