Что такое неожиданная T_VARIABLE в PHP?
-
13-09-2019 - |
Вопрос
Я получаю эту ошибку PHP:
Ошибка синтаксического анализа:синтаксическая ошибка, неожиданная T_VARIABLE
Из этой строки:
$list[$i][$docinfo['attrs']['@groupby']] = $docinfo['attrs']['@count'];
Есть ли что-то не так с этой строкой?
Решение
Перед вставленной строкой может отсутствовать точка с запятой или скобка.Мне кажется, все в порядке, каждая строка разрешена в качестве индекса массива.
Другие советы
Это может быть и какая-то другая строка, 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 преобразует вашу программу в серию токенов.A T_VARIABLE
является токеном ПЕРЕМЕННОЙ типа.Когда анализатор обрабатывает токены, он пытается разобраться в них и выдает ошибки, если получает переменную, в которой недопустимо ни одно значение.
В простом случае, приведенном выше, с переменной $b
, анализатор попытался обработать это:
$a = 5 $b = 7;
Анализатор php смотрит на $ b после 5 и говорит: "это неожиданно".
В моем случае это была проблема с версией PHP.
файл .phar, который я использовал, был несовместим с PHP 5.3.9.Переключение интерпретатора на PHP 7 действительно исправило это.