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


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

ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_VARIABLE

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

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

что-то не так с этой линии?

3 64

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 действительно исправило это.