Что такое неожиданная переменная T в PHP?

Я получаю эту ошибку PHP:

Parse error: синтаксическая ошибка, непредвиденная T_VARIABLE

из этой строки:

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

что-нибудь не так с этой строкой?

3 ответов


перед вставленной строкой может отсутствовать точка с запятой или скобка. Мне кажется, что все в порядке, каждая строка разрешена как индекс массива.


это может быть и другая строка, 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 является маркером переменной типа. Когда парсер обрабатывает токены, пытается разобраться в них и выдает ошибки, если получает переменную, где ничего не разрешено.

в простом случае выше с переменной $b, парсер попытался обработать это:

$a = 5 $b = 7;

парсер php смотрит на $b после 5 и говорит: "это неожиданно".


Это мой случай, это был вопрос версии PHP.

.файл phar, который я использовал, не был совместим с PHP 5.3.9. Переключение интерпретатора на PHP 7 исправило это.