2009-09-23 14 views
57

ottengo questo errore PHP:Che cos'è T_VARIABLE inaspettato in PHP?

Parse error: syntax error, unexpected T_VARIABLE

Da questa linea:

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

qualcosa che non va con questa linea?

+0

X-Ref: [Errori Parse/Sintassi PHP; e come risolverli? - T_VARIABLE imprevisto] (http://stackoverflow.com/a/18092267) per le altre cause comuni e le correzioni specifiche del contesto. – mario

risposta

135

Potrebbe esserci un punto e virgola o una parentesi mancante di una riga prima della riga incollata. Mi sembra a posto, ogni stringa è consentita come indice di array.

+0

Oh, mi hai ricordato, è una parentesi mancante. Perché si chiama T_VARIABLE? – omg

+1

Il messaggio di errore indica cosa c'è (inaspettato), non cosa manca. E c'è una variabile, quindi ti dice esattamente questo. – OregonGhost

+1

Perché l'inaspettato '$ list' è una variabile. –

16

Potrebbe anche essere un'altra linea, PHP non è sempre così preciso.

Probabilmente ti manca solo un punto e virgola sulla riga precedente.

come riprodurre questo errore, ha messo questo in un file chiamato a.php:

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

eseguirlo:

[email protected] ~ $ php a.php 

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

Spiegazione:

Il parser PHP converte il tuo programma in a serie di token. A T_VARIABLE è un token di tipo VARIABLE. Quando il parser elabora i token, cerca di capirli e genera errori se riceve una variabile dove nessuno è consentito.

Nel caso semplice di cui sopra con la variabile $b, il parser cercato di elaborare questo:

$a = 5 $b = 7; 

Il php parser esamina il $ b dopo il 5 e dice "che è inaspettato".

Problemi correlati