[PHP]Unexpected T_STRINGエラーが出たときにチェックすること

カテゴリ: PHP

PHPのプログラムを実行するとUnexpected T_STRINGエラーが出る場合があります。

このエラーが出た場合にチェックするポイントを説明します。

エラーが出た場所を確認する

以下のようにエラーが出るので、まずはこのエラーメッセージよりエラーが検出された場所を確認します。

Unexpected T_STRING in index.php on line 20

上記の場合だと、index.phpというファイルの20行目でエラーが発生しました。問題のエラーは20行目にあるとは限らず、実際はもう少し手間でプログラムの間違いがあり、PHPがエラーを検出したのが20行目だっただけの場合も多いです。

エラーの原因を探る

Unexpected T_STRINGエラーが発生する理由は様々ですが、良くあるのは以下のものです。

文字列の最初or最後の「"」や「'」をつけ忘れた

以下のように、文字列の最後の「"」や「'」を忘れるとエラーになります。

#誤り
echo "hello;

#正解
echo "hello";
#誤り
echo 'hello;

#正解
echo 'hello';

文字列の最初と最後の記号が一致してない

#誤り
echo 'hello";

#正解
echo "hello";
もしくは
echo 'hello';

文字列の途中に「"」や「'」が入っている

文字列の途中に、「"」や「'」が入っていると、そこで文字列の終わりと誤認識されている可能性があります。この場合は、「"」や「'」の前に半角の¥マークorバックスラッシュ「\」を入力する必要があります

#誤り  what's newと表示させたいが、文字列中に「'」が入っている
echo 'what's new';


#正解
echo 'what\'s new';
または
echo "what\'s new";
#誤り
echo "<a href="http://example.com">hello</a>";

#正解
echo "<a href=\"http://example.com\">hello</a>";

「"」や「'」が半角ではなく、全角の「“」「”」「’」などになっている。

文字列の最初の終わりの文字は、半角である必要があります。

エラーが出た行に半角スペースではなく、全角スペースが入っている。

インデントのためのスペースは半角スペースである必要があります。
これはすぐにわかりづらいので、エディタで1文字づつ反転させてみて、全角スペースが入っていないかチェックしたり、エディタの検索機能でチェックすると良いです。

こちらもおススメ
カテゴリ: PHP

コメントを残す

メールアドレスが公開されることはありません。