¿Qué es T_VARIABLE inesperado en PHP?

Respuestas:

189

Puede haber un punto y coma o un corchete sin una línea antes de la línea pegada.

Me parece bien; cada cadena está permitida como índice de matriz.

Knittl
fuente
Oh, me recordaste que no hay un corchete. ¿Por qué se llama T_VARIABLE?
omg
2
El mensaje de error le dice lo que hay (inesperado), no lo que falta. Y hay una variable, por lo que te dice exactamente eso.
OregonGhost
2
Porque lo inesperado $listes una variable.
Michael Krelin - hacker
2
debido a que php esperaba un corchete y encontró una variable, es por eso que le dice 'variable inesperada'
knittl
24

También podría ser otra línea. PHP no siempre es tan exacto.

Probablemente le falte un punto y coma en la línea anterior.

Cómo reproducir este error, ponga esto en un archivo llamado a.php:

<?php
  $a = 5
  $b = 7;        // Error happens here.
  print $b;
?>

Ejecutarlo:

eric@dev ~ $ php a.php

PHP Parse error:  syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3

Explicación:

El analizador de PHP convierte su programa en una serie de tokens. A T_VARIABLEes un Token de tipo VARIABLE. Cuando el analizador procesa tokens, intenta darles sentido y arroja errores si recibe una variable donde no se permite ninguna.

En el caso simple anterior con variable $b, el analizador intentó procesar esto:

$a = 5 $b = 7;

El analizador de PHP mira $ b después del 5 y dice "eso es inesperado".

dusoft
fuente
2

En mi caso fue un problema de la versión PHP.

El archivo .phar que estaba usando no era compatible con PHP 5.3.9. Cambiar de intérprete a PHP 7 lo solucionó.

Zank
fuente