文字列の閉じクォート忘れによる Parse error
文字列を囲むクォートの片方を書き忘れると、それ以降のコードすべてが文字列の中身として読み込まれ、ファイルの終わりまで閉じクォートが見つからずエラーになります。
エラーメッセージの読み方
Parse error: syntax error, unexpected end of file in main.php on line 3
main.php- ファイル名
3- 行番号 — PHPが構文解析を諦めた位置
Parse error- エラー種別 — 実行前の構文チェックで検出されました
syntax error, unexpected end of file- 内容 — 期待していたもの、または受け付けられなかったもの
このエラーが出る典型パターン
パターン1
1 <?php 2 $s = "hello ^ 3 echo $s;
Parse error: syntax error, unexpected end of file in main.php on line 3
文字列を閉じるダブルクォートがありません。以降のコード全体が文字列の中身として読み込まれ、ファイルの終わりまで閉じクォートが見つからずエラーになります。
直し方: (空) を "; にします。
広告
広告スロット(未設定)
パターン2
1 <?php 2 $msg = "world ^ 3 echo $msg;
Parse error: syntax error, unexpected end of file in main.php on line 3
msgも同様です。閉じクォートが無いと、echo以降の行もすべて文字列の一部として飲み込まれます。
直し方: (空) を "; にします。
パターン3
1 <?php 2 $name = "Al ^ 3 echo $name;
Parse error: syntax error, unexpected end of file in main.php on line 3
エラーはファイル末尾を指しますが、直す場所は文字列が開始した行です。
直し方: (空) を "; にします。
よくある誤解
エラーがファイル末尾の行を指すからといって、そこにクォートを足しても直りません。本当に直すべきは、文字列が始まった行の閉じクォートです。
まとめ
文字列の閉じクォート忘れによる Parse errorは初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。