「Parse error: syntax error」とは?

スポンサーリンク

「Parse error: syntax error…」というエラーメッセージが表示される場合、その原因のほとんどが、プログラムの入力ミスです。簡単に解決できる場合もありますが、エラーメッセージの行番号に惑わされて解決が遅れることもあります。

たとえば、次の例では、「こんにちは」の右側に「"」がないので、このエラーメッセージが表示されます。

<?php
echo "こんにちは;
?>
Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\file\web\test\php\test.php on line 3

「Parse error」を直訳すると、「構文解析エラー」になります。PHPスクリプトを実行する準備として、PHPの実行エンジンによるPHPスクリプトの解釈(分析・翻訳)がうまくいかなかったということです。

エラーメッセージに示された行番号などからエラーの原因を特定する必要があります。詳しくは、以下の記事を参考にしてください。
「Parse error」の原因がわからないとき

「Parse error: syntax error…」の行番号は信じてはいけない

「Parse error: syntax error…」の最後に行番号が表示されます。エラー原因の特定につながる大きなヒントですが、この行番号だけを信じて行動してはいけません。

この行番号は、必ずしもエラーが発生した行の位置を示しているとは限りません。上記の例でもエラーがあるのは2行目ですが、エラーメッセージは3行目になっています。

3行目ばかり見つめていても、エラーを特定できません。「Parse error: syntax error…」の行番号は、あくまで参考にとどめ、その周辺や、場合によっては、かなり上の行を見直すことでエラー原因を特定する必要があります。

定番のエラーメッセージを予習したい方におすすめの本

「syntax error」に限らずPHPスクリプトの作成時はさまざまなエラーメッセージを目にします。実戦経験を積めばいろいろなメッセージを目にできるのですが、先に見て予習したい方にはこの本をおすすめします(私が書いた本ですが)。よくある定番のエラーや入力間違いなどをクイズ風にまとめてあります。暇なときに読んでみてください。
「PHP「直す力」養成ドリル」について詳しくはこちら

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル