Ho creato 2 semplici esempi:Loop con parentesi graffe fa sì che l'uscita sbagliata
Primo esempio:
<?php $arr = array(1,2,3,4,5); ?>
<?php foreach ($arr as $element) ?>
<?php { ?>
<?php echo $element; ?>
<?php } ?>
uscita:
5 //Is this result wrong?
Secondo esempio:
<?php $arr = array(1,2,3,4,5); ?>
<?php foreach ($arr as $element) { ?>
<?php echo $element; ?>
<?php } ?>
uscita :
12345
Cosa mi manca della sintassi PHP?
So che esiste una sintassi foreach alternativa, ma a mio parere entrambi gli esempi mostrati dovrebbero risultare nello stesso output. (Codice testato con versione di PHP: 5.6.12)
Edit:
So che i tag non sono necessari in ogni riga. Per essere più precisi: voglio sapere perché i due esempi mi danno 2 risultati diversi?
lo so: D Basta chiedersi il perché di questa uscita ... – Thulur
appena messo alla fine ..... perchè stai usando Php a begginning e??> in ogni riga .. –
Solo a indovinare, ma forse il?> nel primo esempio viene effettivamente preso come fine dell'istruzione (i loop possono essere utilizzati senza parentesi). A quel punto, il ciclo è successo e '$ element' è l'ultimo valore. Quindi le parentesi graffe sono prese come un blocco di codice che tu echi, che è 5. –