In questa lezione, che completa la precedente, concluderemo il discorso legato alle meccaniche di controllo dell’esecuzione. Vedremo come eseguire ripetutamente una serie di operazioni e come è possibile accedere in maniera dinamica agli elementi di un array.
While
Il costrutto while è la più semplice forma di ciclo tra quelle possibili in PHP e, come detto in precedenza, permette di eseguire la stessa operazione più volte fino al verificarsi di una certa condizione. Facciamo subito un esempio (controllo_while.php):
';
$i++;
}
?>
Questo piccolo script non fa altro che stampare a video, e successivamente incrementare di un unità , il valore di $i. Queste due operazioni vengono fatte per 5 volte, ossia fino a che il valore di $i sia minore di 5.
Il controllo della condizione viene fatto prima di svolgere ogni ciclo di istruzioni.
Do..while
Do..while è una semplicissima variante del costrutto while, la sua sintassi è:
e l’unica differenza con while è che il controllo della condizione viene effettuato dopo aver svolto ogni ciclo di istruzioni. Questo implica che il blocco di istruzioni all’interno del ciclo verrà eseguito sempre almeno una volta, anche se la condizione risultasse falsa persino al primo controllo.
For
Il costrutto for serve a realizzare cicli più complessi di quelli che abbiamo visto fino ad ora, perché fornisce all’utente una vasto controllo sull’esecuzione del ciclo.
Questa è la sintassi:
for (espressione1; espressione2; espressione3){
istruzioni
}
Espressione1 verrà eseguita solamente prima di iniziare il primo ciclo, espressione2 viene usata come espressione di controllo per decidere se proseguire o continuare con le iterazioni, proprio come in while, espressione3 viene eseguita una volta alla fine di ogni ciclo. Cosa significa nel dettaglio? Vediamo subito un esempio pratico (controllo_for.php):
';
}
?>
Queste istruzioni scrivono nella pagina web per cinque volte il valore della variabile $i. Ma analizziamo meglio l’esempio:
- La prima volta che l’interprete incontra il ciclo for, esegue espressione1, ossia l’istruzione $i=0
- Ad ogni ciclo, prima di iniziare ad eseguire le istruzioni, controlla che espressione2, ossia $i<5, sia verificata. Se sì continua altrimenti interrompe l’esecuzione
- Dopo aver eseguito le istruzioni all’interno delle parentesi graffe, esegue espressione3, ossia $i++, incrementando il valore di $i di un’unitÃ
In questo modo il ciclo verrà eseguito cinque volte, perché se alla fine di ogni iterazione il valore di $i viene incrementato di un unità , la sesta volta che verrà eseguita l’espressione di controllo $i<5, questa non sarà più verificata e l’esecuzione terminerà .
Foreach
Foreach è una versione particolare del costrutto for, e viene utilizzato per costruire dei cicli basati sugli array.
Vediamo la sintassi, anzi, le sintassi, dato che di questo costrutto esistono due possibili notazioni:
foreach (array_expression as $value){
istruzioni
}foreach (array_expression as $key => $value){
istruzioni
}
La prima sintassi scorre tutto l’array array_expression e ad ogni iterazione assegna l’elemento corrente alla variabile $value. La seconda effettua lo stesso scorrimento della prima, con la differenza che oltre ad assegnare l’elemento corrente a $value, assegna a $key il valore dell’indice corrente o, nel caso di un array associativo, la stringa che rappresenta la posizione dell’elemento.
Ed ecco due esempi pratici che ne illustrano il funzionamento:
';
}
foreach ($arr as $key => $value){
echo 'Elemento con chiave '.$key.' : '.$value.'
';
}
?>
In questo modo possiamo scorrere gli elementi di un array ed effettuare operazioni su di essi indipendentemente dal fatto che siano array normali o associativi. Gli array normali, con indice numerico, ovviamente possono essere attraversati anche da un ciclo for, ma nel caso di un array associativo siamo costretti ad utilizzare una delle due versioni di foreach.
LEZIONI PRECEDENTI:
11 Dicembre 2007: Introduzione
17 Dicembre 2007: Installazione di una piattaforma LAMP su Ubuntu Linux
18 Dicembre 2007: Dentro l’HTML
20 Dicembre 2007: E tu di che tipo sei?
7 Gennaio 2008: Operiamo?
10 Gennaio 2008: Ed ecco gli Array
17 Gennaio 2008: Controllare l’esecuzione (1)
di Rocco Zanni - TuxJournal.net
Rocco Zanni Blog