2009-09-23 15 views
57

Ich erhalte diese PHP-Fehler:Was ist unerwartet T_VARIABLE in PHP?

Parse error: syntax error, unexpected T_VARIABLE

Von dieser Linie:

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

Gibt es etwas falsch mit dieser Linie?

+0

X-Ref: [PHP Parse/Syntax Fehler; und wie man sie löst? - Unerwartete T_VARIABLE] (http://StackOverflow.com/a/18092267) für die anderen häufigen Ursachen und kontextspezifischen Korrekturen. – mario

Antwort

135

Möglicherweise fehlt ein Strichpunkt oder eine Klammer vor der eingefügten Zeile. Es scheint mir gut, jeder String ist als Array-Index erlaubt.

+0

Oh du erinnerst mich, es ist eine Klammer verpasst. Warum heißt es T_VARIABLE? – omg

+1

Die Fehlermeldung sagt Ihnen, was ist (unerwartet), nicht was fehlt. Und es gibt eine Variable, also sagt es Ihnen genau das. – OregonGhost

+1

Weil die unerwartete '$ liste' eine Variable ist. –

16

Es könnte auch eine andere Zeile sein, PHP ist nicht immer so genau.

Vermutlich fehlt nur ein Semikolon in der vorherigen Zeile.

Wie um diesen Fehler zu reproduzieren, diese a.php genannt in einer Datei speichern,:

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

Run it:

[email protected] ~ $ php a.php 

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

Erläuterung:

Der PHP-Parser wandelt Ihr Programm in a um Reihe von Token. A T_VARIABLE ist ein Token vom Typ VARIABLE. Wenn der Parser Tokens verarbeitet, versucht er, sie zu verstehen, und gibt Fehler aus, wenn er eine Variable empfängt, für die keine zulässig ist.

Im einfachen Fall oben mit variabler $b, versucht der Parser diese zu verarbeiten:

$a = 5 $b = 7; 

Der PHP-Parser auf $ b nach dem 5 sieht und sagt „das ist unerwartet“.