Code Fix

初級

文字列の閉じクォート忘れによる 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パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。

演習をはじめる

関連するエラー

広告
広告スロット(未設定)