Co to jest nieoczekiwana T_VARIABLE w PHP?

Odpowiedzi:

189

Może brakować średnika lub nawiasu przed wklejonym wierszem.

Wydaje mi się w porządku; każdy łańcuch jest dozwolony jako indeks tablicy.

knittl
źródło
Och, przypomniałeś mi, że brakuje nawiasu. Dlaczego nazywa się T_VARIABLE?
omg
2
Komunikat o błędzie informuje, co tam jest (nieoczekiwane), a nie czego brakuje. Jest tam zmienna, więc dokładnie to mówi.
OregonGhost,
2
Ponieważ nieoczekiwane $listjest zmienną.
Michael Krelin - haker
2
ponieważ php spodziewał się nawiasu i znalazł zmienną, dlatego mówi ci „nieoczekiwana zmienna”
knittl
24

Może to być również inna kwestia. PHP nie zawsze jest takie dokładne.

Prawdopodobnie brakuje średnika w poprzednim wierszu.

Jak odtworzyć ten błąd, umieść to w pliku o nazwie a.php:

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

Uruchom:

eric@dev ~ $ php a.php

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

Wyjaśnienie:

Parser PHP konwertuje twój program na serię tokenów. A T_VARIABLEjest tokenem typu VARIABLE. Kiedy parser przetwarza tokeny, próbuje je zrozumieć i zgłasza błędy, jeśli otrzyma zmienną, w której żadna nie jest dozwolona.

W prostym przypadku powyżej ze zmienną $bparser próbował przetworzyć to:

$a = 5 $b = 7;

Parser PHP sprawdza $ b po 5 i mówi „to jest nieoczekiwane”.

dusoft
źródło
2

W moim przypadku był to problem z wersją PHP.

Plik .phar, którego używałem, nie był zgodny z PHP 5.3.9. Przełączenie interpretera na PHP 7 rozwiązało problem.

Zank
źródło