Wat is onverwachte T_VARIABLE in PHP?

Ik krijg deze PHP-fout:

Parseerfout: syntaxisfout, onverwacht
T_VARIABLE

Van deze regel:

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

Is er iets mis met deze regel?


Antwoord 1, autoriteit 100%

Er kan een puntkomma of haakje ontbreken in een regel voor uw geplakte regel.

Het lijkt me prima; elke string is toegestaan als een array-index.


Antwoord 2, autoriteit 13%

Het kan ook een andere regel zijn. PHP is niet altijd zo exact.

Waarschijnlijk mis je alleen een puntkomma op de vorige regel.

Hoe u deze fout kunt reproduceren, plaatst u deze in een bestand met de naam a.php:

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

Voer het uit:

eric@dev ~ $ php a.php
PHP Parse error:  syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3

Uitleg:

De PHP-parser converteert uw programma naar een reeks tokens. Een T_VARIABLEis een token van het type VARIABLE. Wanneer de parser tokens verwerkt, probeert hij ze te begrijpen en genereert fouten als hij een variabele ontvangt waar geen enkele is toegestaan.

In het eenvoudige geval hierboven met variabele $bprobeerde de parser dit te verwerken:

$a = 5 $b = 7;

De PHP-parser kijkt naar de $b na de 5 en zegt “dat is onverwacht”.


Antwoord 3

In mijn geval was het een probleem van de PHP-versie.

Het testbestand dat ik gebruikte was niet compatibel met PHP 5.3.9. Schakelinterpreter naar PHP 7 heeft het opgelost.

Other episodes