2015-06-18 14 views
5

My Code:

$a = []; 
isset($a[0]) and unset($a[0]); 

mostra "syntax error, unexpected 'unset' (T_UNSET)"

ma

$a = []; 
isset($a[0]) and exit(); 

IT funziona!

Entrambi di exit() e unset() non restituiscono alcun valore. Perché uno lavora ma non l'altro?

+3

potrebbe shar le tue informazioni errore? –

+0

'exit' non restituisce un valore perché il programma _exits_! Il codice –

+4

è così brutto, che cosa vuoi fare esattamente? – Umair

risposta

3

unset è un costrutto di linguaggio, non una funzione reale (questo è il motivo per cui si ottiene T_UNSET e non un termine più generico), quindi non viene riprodotto con le stesse regole di una normale funzione. isset e exit sono anche costrutti di linguaggio, ma si comportano più come normali funzioni.

0

come ho chiesto nei commenti e lei ha detto che si desidera eliminare un valore da Array,

Perché non scrivere semplicemente

$a = []; 
if(isset($a[0])){ 
unset($a[0]); 
// And exit() if you want to 
} 
+0

grazie, ma io chiedo perché – yrssoft

+0

Perché questo è un modo semplice per scrivere e leggere ... altrimenti, i futuri programmatori che lavorano sul tuo codice diranno parolacce su di te: P – Umair