【PHPエラー】Parse error: syntax error, unexpectedの解決方法
PHPでプログラムを作っていると突然表示されるエラー文章。突然エラーが表示されると焦ってしまいますよね。
この記事ではParse error: syntax error, unexpected
というPHPでプログラムを作っているとよく発生するエラーについて原因と、解決方法を解説します。
Parse error: syntax error, unexpectedとは
PHPでプログラミングをしていると必ず出くわすこのParse error: syntax error, unexpected
。
syntaxという英単語は構文という意味です。つまりこのエラーはPHPの文法・構文上、間違っている記述がある場合に表示されるエラーです。
PHPに限らず、プログラミング言語は「;」や「}」が抜けているだけの記述ミスでもこのようにエラーとなってしまいます。
パターン別の解決方法
それではここからは、よくあるParse error: syntax error, unexpected
の例と解決方法をご紹介したいと思います。
以下のPHPコードをもとにどこを記述ミスすると、どのようなParse error: syntax error, unexpected
が表示されるのか順番に見ていきましょう。
<?php
$a = 5;
function test($a,$b){
$c = $a + $b;
return $c;
}
echo test($a,1);
?>
Parse error: syntax error, unexpected ‘function’ (T_FUNCTION) in の場合
Parse error: syntax error, unexpected 'function' (T_FUNCTION) in
が表示された場合、4行目のfunction test($a,$b)
の直前を見てみましょう。
以下の書き方をした場合、このエラーが表示されました。;(セミコロン)が抜けているため、次のfunctionがエラーを起こしてしまいました。
<?php
$a = 5 ← ★ここの;(セミコロン)が抜けている
function test($a,$b){
$c = $a + $b;
return $c;
}
echo test($a,1);
?>
Parse error: syntax error, unexpected ‘=’ in の場合
Parse error: syntax error, unexpected '=' in
が表示された場合、3行目を見てみましょう。
以下の書き方をした場合、このエラーが表示されました。変数名に-(ハイフン)を使ってしまったため、エラーを起こしてしまいました。
PHPでは変数名に-(ハイフン)を使用することは出来ません。
<?php
$a-z = 5; ← ★変数名に-(ハイフン)を使用している
function test($a,$b){
$c = $a + $b;
return $c;
}
echo test($a,1);
?>
Parse error: syntax error, unexpected ‘{‘, expecting ‘)’ in の場合
Parse error: syntax error, unexpected '{', expecting ')' in
が表示された場合、4行目を見てみましょう。
以下の書き方をした場合、このエラーが表示されました。)(閉じカッコ)が抜けているため、その次に記述されている{(カッコ)の部分で処理が止まってしまい、エラーを起こしてしまいました。
<?php
$a = 5;
function test($a,$b{ ← ★)(閉じカッコ)が抜けている
$c = $a + $b;
return $c;
}
echo test($a,1);
?>
Parse error: syntax error, unexpected end of file in の場合
Parse error: syntax error, unexpected end of file in
が表示された場合、11行目を見てみましょう。
<?php
$a = 5;
function test($a,$b{)
$c = $a + $b;
return $c;
← ★}(閉じカッコ)が抜けている
echo test($a,1);
?>
以下の書き方をした場合、このエラーが表示されました。}(閉じカッコ)が抜けているため、予期せずファイルの処理が終了してしまったため、エラーを起こしてしまいました。
まとめ
いかがでしたか?
上の例でいくつかご紹介したように、ちょっとした記述ミスでもParse error: syntax error, unexpected
となってしまいます。
記述ミスの内容により若干エラー文章は異なるので、エラー個所とエラー文章を手掛かりにどこがどのように間違っているのか実際にソースをもとに見つけましょう。