2009-09-23 5 views
57

Je reçois cette erreur PHP:Quel est T_VARIABLE inattendu en PHP?

Parse error: syntax error, unexpected T_VARIABLE

De cette ligne:

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

Y at-il quelque chose de mal avec cette ligne?

+0

X-Ref: [PHP Analyse/Erreurs de syntaxe; et Comment les résoudre? - T_VARIABLE inattendu] (http://stackoverflow.com/a/18092267) pour les autres causes communes et les correctifs spécifiques au contexte. – mario

Répondre

135

Il se peut qu'un point-virgule ou une parenthèse manque une ligne avant votre ligne collée. Cela me semble bien, chaque chaîne est autorisée en tant qu'index de tableau.

+0

Oh vous m'avez rappelé, c'est une parenthèse ratée. Pourquoi est-ce que ça s'appelle T_VARIABLE? – omg

+1

Le message d'erreur vous dit ce qu'il y a (inattendu), pas ce qui manque. Et il y a une variable, donc ça vous dit exactement ça. – OregonGhost

+1

Parce que inattendu '$ list' est une variable. –

16

Cela pourrait être une autre ligne aussi, PHP n'est pas toujours aussi précis.

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

Comment reproduire cette erreur, mettez ceci dans un fichier appelé a.php:

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

Lancez-:

[email protected] ~ $ 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 série de jetons. Un T_VARIABLE est un jeton de type VARIABLE. Lorsque l'analyseur traite les jetons, il essaie de les comprendre et lance des erreurs s'il reçoit une variable où aucune n'est permise.

Dans le cas simple ci-dessus avec la 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 « qui est inattendu ».

Questions connexes