Was ist unerwartet T_VARIABLE in PHP?


Antworten:


186

Möglicherweise fehlt einem Semikolon oder einer Klammer eine Zeile vor der eingefügten Zeile.

Es scheint mir in Ordnung zu sein; Jede Zeichenfolge ist als Array-Index zulässig.


Oh, du hast mich daran erinnert, dass eine Klammer fehlt. Warum heißt sie T_VARIABLE?
Omg

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

2
Weil das Unerwartete $listeine Variable ist.
Michael Krelin - Hacker

2
weil PHP eine Klammer erwartet und eine Variable gefunden hat, sagt es Ihnen deshalb 'unerwartete Variable'
stricken Sie

23

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

Wahrscheinlich fehlt Ihnen nur ein Semikolon in der vorherigen Zeile.

Um diesen Fehler zu reproduzieren, fügen Sie ihn in eine Datei mit dem Namen ein a.php:

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

Starte es:

eric@dev ~ $ 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 konvertiert Ihr Programm in eine Reihe von Token. A T_VARIABLEist ein Token vom Typ VARIABLE. Wenn der Parser Token verarbeitet, versucht er, diese zu verstehen, und gibt Fehler aus, wenn er eine Variable empfängt, für die keine zulässig ist.

Im obigen einfachen Fall mit Variable $bhat der Parser versucht, dies zu verarbeiten:

$a = 5 $b = 7;

Der PHP-Parser schaut auf das $ b nach der 5 und sagt "das ist unerwartet".


2

In meinem Fall war es ein Problem der PHP-Version.

Die von mir verwendete .phar-Datei war nicht mit PHP 5.3.9 kompatibel. Das Umschalten des Interpreters auf PHP 7 hat das Problem behoben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.