web-dev-qa-db-ja.com

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

このPHPエラーが表示されます:

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

この行から:

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

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

72
omg

貼り付けた行の前の行にセミコロンまたは角かっこがない場合があります。私にはすべての文字列が配列インデックスとして許可されているようです。

172
knittl

他の行でもかまいません。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パーサーは、プログラムを一連のトークンに変換します。 T_VARIABLEは、VARIABLE型のトークンです。パーサーがトークンを処理するとき、トークンの意味を理解しようとし、許可されていない変数を受け取るとエラーをスローします。

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

$a = 5 $b = 7;

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

18
dusoft

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

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

1
Zank