PHP中意外的T_VARIABLE是什么?


Answers:


189

在您粘贴的行之前,可能会有分号或方括号缺少一行。

对我来说似乎很好;每个字符串都可以作为数组索引。


哦,你提醒我,这是一个漏掉的括号。为什么叫T_VARIABLE?
omg,

2
该错误消息告诉您那里是什么(意外),而不是缺少什么。而且有一个变量,因此它可以准确地告诉您。
OregonGhost

2
因为意外$list是一个变量。
Michael Krelin-黑客

2
因为php期待括号并找到了一个变量,所以它告诉您“意外变量”
knittl 09/09/23

24

也可能是其他一行。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类型的令牌。当解析器处理令牌时,它会尝试理解它们,如果接收到一个不允许任何变量的变量,则会引发错误。

在上述带有variable的简单情况下$b,解析器尝试处理此问题:

$a = 5 $b = 7;

PHP解析器在5之后查看$ b并说“这是意外的”。


2

就我而言,这是PHP版本的问题。

我使用的.phar文件与PHP 5.3.9不兼容。将解释器切换到PHP 7确实解决了该问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.