PHP/Programmazione/Cicli: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
sistemazione
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 5:
==Il ciclo while==
Vediamo ora un altro tipo di ciclo, più semplice nella sua costruzione: il ciclo while. Questo si può considerare come una specie di if ripetuto più volte: infatti la sua sintassi prevede che alla parola chiave while segua fra parentesi la condizione da valutare e fra parentesi graffe il codice da rieseguire fino a quando tale condizione rimane vera. Vediamo con un esempio:
<sourcesyntaxhighlight lang="php">
<?php
$variabile = 1;
Riga 19:
}
?>
</syntaxhighlight>
</source>
Il ciclo while non ci mette a disposizione le istruzioni per inizializzare e per incrementare il contatore, quindi dobbiamo inserire queste istruzioni nel flusso generale del codice. Mettiamo quindi l'inizializzazione prima del ciclo e l'incremento all'interno del ciclo stesso, in fondo. Anche in questa situazione il concetto fondamentale è che l'esecuzione del ciclo termina quando la condizione fra parentesi non è più verificata, quindi è possibile che il ciclo non sia eseguito mai, nel caso in cui la condizione risulti falsa fin da subito.
 
Riga 25:
Il ciclo for permette di eseguire tre operazioni in una sola riga. Prendendo l'esempio sopra del ciclo while, anziché inizializzare la variabile $variabile in una riga, mettere la condizione $variabile <= 10 in un'altra e porre l'istruzione di incremento alla fine, il ciclo for permetterà di riassumere tutto in un'unica riga:<br />
 
<sourcesyntaxhighlight lang="php">
for($variabile = 1 ; $variabile <=10 ; $variabile++ ){
istruzioni;
}
</syntaxhighlight>
</source>
Più generalmente:
<sourcesyntaxhighlight lang="php">
for(expr1; expr2 ; expr3 ){
istruzioni;
}
</syntaxhighlight>
</source>
dove expr1 indica l'istruzione da eseguire solo la prima volta all'entrata nel ciclo, expr2 indica la condizione che, se falsa, causa l'uscita dal ciclo, expr3 indica l'istruzione da eseguire una volta eseguite tutte le istruzioni del ciclo, <u>prima</u> di valutare la veridicità della condizione expr2.<br />
Tutte le espressioni expr1 expr2 expr3 possono essere composte da più istruzioni separate da virgola:
<sourcesyntaxhighlight lang="php">
for($i=0, $k=1, $l=5; expr2 ; $i++, $k++, $l++ ){
istruzioni;
}
</syntaxhighlight>
</source>
bisogna porre attenzione con expr2, in quanto anche questa espressione può essere composta da più istruzioni separate da virgola, ma il risultato verrà preso solo dall'ultima di queste istruzioni.
 
Riga 51:
 
La sintassi tipica dell'istruzione è questa:
<sourcesyntaxhighlight lang=php>
foreach( $variabile_su_cui_iterare as $valore ) {
istruzioni
}
</syntaxhighlight>
</source>
Tipicamente $variabile_su_cui_iterare è un [[PHP/Programmazione/Array|array]]. In questo caso il ciclo scorrerà tutti gli elementi dell'array, assegnando di volta in volta il loro valore alla variabile <code>$valore</code>, che potrà essere usata all'interno del corpo del ciclo.
 
Se dovesse essere necessario, per qualche ragione, conoscere anche la chiave dell'array a cui tale oggetto è associato, è possibile usare la sintassi
<sourcesyntaxhighlight lang=php>
foreach( $variabile_su_cui_iterare as $chiave=>$valore ) {
''istruzioni''
}
</syntaxhighlight>
</source>
 
Anche se foreach è tipicamente usato per scorrere tutti gli elementi di un array può essere usato anche per scorrere tutti i membri pubblici, o comunque accessibili, di una classe.