Qu'est-ce que T_VARIABLE inattendu en PHP?

Réponses:

189

Il peut y avoir un point-virgule ou un crochet manquant une ligne avant votre ligne collée.

Cela me semble bien; chaque chaîne est autorisée en tant qu'index de tableau.

tricot
la source
Oh tu m'as rappelé que c'est un crochet manqué, pourquoi ça s'appelle T_VARIABLE?
omg le
2
Le message d'erreur vous indique ce qui est là (inattendu), pas ce qui manque. Et il y a une variable, donc ça vous dit exactement cela.
OregonGhost
2
Parce que l'inattendu $listest une variable.
Michael Krelin - hacker
2
parce que php attendait une parenthèse et a trouvé une variable, c'est pourquoi il vous indique 'variable inattendue'
knittl
24

Cela pourrait aussi être une autre ligne. PHP n'est pas toujours aussi exact.

Il vous manque probablement un point-virgule sur la ligne précédente.

Comment reproduire cette erreur, placez-le dans un fichier appelé a.php:

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

Exécuter:

eric@dev ~ $ php a.php

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

Explication:

L'analyseur PHP convertit votre programme en une série de jetons. UNET_VARIABLE est un jeton de type VARIABLE. Lorsque l'analyseur traite des jetons, il essaie de les comprendre et renvoie des erreurs s'il reçoit une variable là où aucune n'est autorisée.

Dans le cas simple ci-dessus avec variable $b, l'analyseur a essayé de traiter ceci:

$a = 5 $b = 7;

L'analyseur PHP regarde le $ b après le 5 et dit "c'est inattendu".

dusoft
la source
2

Dans mon cas, c'était un problème de version PHP.

Le fichier .phar que j'utilisais n'était pas compatible avec PHP 5.3.9. Le passage de l'interpréteur à PHP 7 l'a corrigé.

Zank
la source