PHPの予期しないT_VARIABLEとは何ですか?


87

このPHPエラーが発生します:

解析エラー:構文エラー、予期しないT_VARIABLE

この行から:

$list[$i][$docinfo['attrs']['@groupby']] = $docinfo['attrs']['@count'];

この行に何か問題がありますか?


1
X-Ref:PHP解析/構文エラー; とそれらを解決する方法は?-その他の一般的な原因とコンテキスト固有の修正のための予期しないT_VARIABLE
マリオ2015

回答:


193

貼り付けた行の前に、行が欠落しているセミコロンまたは角かっこがある可能性があります。

それは私には問題ないようです。すべての文字列は配列インデックスとして許可されます。


かっこが抜けているのを思い出しましたが、なぜT_VARIABLEと呼ばれるのですか?
omg

2
エラーメッセージは、不足しているものではなく、そこにあるもの(予期しないもの)を示します。そして変数があるので、それはあなたにそれを正確に伝えます。
OregonGhost 2009

2
予想外$listは変数だからです。
MichaelKrelin-ハッカー2009年

2
phpは

25

他の行でもかまいません。PHPは必ずしも正確ではありません。

おそらく、前の行にセミコロンがありません。

このエラーを再現する方法は、次のファイルに入れてくださいa.php

<?php
  $a = 5
  $b = 7;        // Error happens here.
  print $b;
?>

それを実行します:

eric@dev ~ $ php a.php

PHP Parse error:  syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3

説明:

PHPパーサーは、プログラムを一連のトークンに変換します。AT_VARIABLEはVARIABLEタイプのトークンです。パーサーがトークンを処理するとき、トークンを理解しようとし、許可されていない変数を受け取った場合はエラーをスローします。

上記の変数を使用した単純なケース$bでは、パーサーはこれを処理しようとしました。

$a = 5 $b = 7;

PHPパーサーは5の後の$ bを見て、「それは予想外です」と言います。


2

私の場合、それはPHPバージョンの問題でした。

私が使用していた.pharファイルはPHP5.3.9と互換性がありませんでした。インタプリタをPHP7に切り替えると、修正されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.