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.


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”.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.