什么是PHP中的意外T_VARIABLE?

omg*_*omg 72 php syntax-error

我收到这个PHP错误:

解析错误:语法错误,意外T_VARIABLE

从这一行:

$list[$i][$docinfo['attrs']['@groupby']] = $docinfo['attrs']['@count'];
Run Code Online (Sandbox Code Playgroud)

这条线有什么问题吗?

kni*_*ttl 173

在粘贴的行之前,可能会有分号或括号错过一行.对我来说似乎很好,每个字符串都允许作为数组索引.

  • 该错误消息告诉您那里是什么(意外),而不是缺少什么。而且有一个变量,因此它可以告诉您确切的信息。 (2认同)
  • 因为意外的$ list是变量。 (2认同)
  • 因为php期待一个括号并找到一个变量,这就是为什么它告诉你'意外变量' (2认同)

dus*_*oft 18

它也可能是其他一些行,PHP并不总是那么精确.

可能你只是错过了前一行的分号.

如何重现此错误,将其放在一个名为的文件中a.php:

<?php
  $a = 5
  $b = 7;        //error happens here.
  print $b;
?>
Run Code Online (Sandbox Code Playgroud)

运行:

eric@dev ~ $ php a.php

PHP Parse error:  syntax error, unexpected T_VARIABLE in 
/home/el/code/a.php on line 3
Run Code Online (Sandbox Code Playgroud)

说明:

PHP解析器将您的程序转换为一系列标记.A T_VARIABLE是VARIABLE类型的令牌.当解析器处理令牌时,它会尝试理解它们,如果收到一个不允许的变量,则抛出错误.

在上面带变量的简单情况下$b,解析器试图处理这个:

$a = 5 $b = 7;
Run Code Online (Sandbox Code Playgroud)

php解析器在5之后查看$ b并说"这是意外的".