O que é T_VARIABLE inesperado em PHP?

Respostas:

189

Pode haver um ponto-e-vírgula ou colchete faltando uma linha antes da linha colada.

Parece bom para mim; cada string é permitida como um índice de array.

tricô
fonte
Oh, você me lembrou, é um colchete perdido. Por que se chama T_VARIABLE?
omg
2
A mensagem de erro informa o que há (inesperado), não o que está faltando. E há uma variável, então ela diz exatamente isso.
OregonGhost
2
Porque o inesperado $listé uma variável.
Michael Krelin - hacker
2
porque o php estava esperando um colchete e encontrou uma variável, é por isso que ele diz a você 'variável inesperada'
knittl
24

Pode ser alguma outra linha também. PHP nem sempre é tão exato.

Provavelmente está faltando um ponto-e-vírgula na linha anterior.

Para reproduzir este erro, coloque-o em um arquivo chamado a.php:

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

Executá-lo:

eric@dev ~ $ php a.php

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

Explicação:

O analisador PHP converte seu programa em uma série de tokens. A T_VARIABLEé um token do tipo VARIABLE. Quando o analisador processa tokens, ele tenta entendê-los e lança erros se receber uma variável na qual nenhum é permitido.

No caso simples acima com variável $b, o analisador tentou processar isso:

$a = 5 $b = 7;

O analisador PHP olha para $ b após o 5 e diz "isso é inesperado".

Dusoft
fonte
2

No meu caso foi um problema de versão do PHP.

O arquivo .phar que eu estava usando não era compatível com PHP 5.3.9. Mudar o interpretador para o PHP 7 corrigiu isso.

Zank
fonte