back to top

PHP cicli: for, while e do while

Chiunque abbia già delle semplici nozioni di programmazione con altri linguaggi di scripting saprà certamente di cosa si tratta e quale grande importanza rivestono i cicli (o iterazioni). Tuttavia, trattandosi di una guida di base, ritengo opportuno introdurre l’argomento partendo da una semplice definizione che chiarisca le idee anche a chi è a digiuno dei concetti più basilari.

Ciclo for

Un ciclo, come già suggerisce la parola, consiste semplicemente in una ripetizione di un dato comando per un dato numero di volte.

Come al solito partiamo da un esempio: facciamo finta di essere tornati ai banchi della scuola elementare e di studiare le tabelline. Il compito per domani è scrivere la tabellina del numero 3. Bene… vediamo come farlo con l’aiuto di PHP e dei cicli appunto:

<?php
for ($moltiplicatore = 1; $moltiplicatore <= 10; $moltiplicatore++) {
  $risultato = 3 * $moltiplicatore;
  echo "3 * " . $moltiplicatore . " = " . $risultato . "<br/>";
}
?>

Nell’esempio qui sopra abbiamo utilizzato il ciclo for accompagnato (fra parentesi) dalle istruzioni che delimitano il ciclo; di seguito, si racchiudono fra parentesi graffe tutte le istruzioni oggetto di ripetizione.

Come abbiamo detto, all’interno delle parentesi tonde abbiamo inserito le istruzioni: queste sono tre e sono divise tra loro da un punto e virgola.

La prima istruzione ($moltiplicatore = 1) viene eseguita una sola volta all’inizio del ciclo.

La seconda ($moltiplicatore <= 10) è la condizione che viene valutata prima di ogni nuova iterazione del ciclo. Il ciclo prosegue fino a quando questa condizione è vera. Quando risulterà falsa il ciclo termina.

La terza ($moltiplicatore++) viene eseguita al termine di ogni iterazione del ciclo e serve, apunto, per proseguire nello stesso finchè la condizione lo consente.

Nota: lavorando con i cicli, è molto importante stare attenti a non creare mai una situazione di "loop" la quale consiste nell’infinito re-iterarsi di un ciclo che non incontra mai la fine. Tra le altre cose ciò può causare dei seri problemi anche allo stato di salute del nostro server!

while

Dopo aver visto come funziona il ciclo for passiamo a vedere come raggiungere gli stessi risultati utilizzando while.

<?php
$moltiplicatore = 1;
while ($moltiplicatore <= 10) {
  $risultato = 5 * $moltiplicatore;
  echo "5 * " . $moltiplicatore . " = " . $risultato . "<br/>";
  $moltiplicatore++;
}
?>

Come nel ciclo for, anche con while l’esecuzione dello script termina quando la condizione (tra parentesi) diventa falsa. Fino a quel momento tutto quello ricompreso nelle parentesi graffe viene ripetuto.

do while

Ancora deve essere ricordato il ciclo do while che ha un funzionamento simile a quello di while con la sola differenza che la condizione è posta alla fine e non all’inizio. Torniamo al nostro esempio e vediamo come scriverlo con do while:

<?php
$moltiplicatore = 1;
do {
  $risultato = 5 * $moltiplicatore;
  echo "5 * " . $moltiplicatore . " = " . $risultato . "<br/>";
  $moltiplicatore++;
} while ($moltiplicatore <= 10);
?>

foreach

Per finire la nostra lezione sui cicli è opportuno ricordare l’esistenza di un ulteriore tipo di ciclo che viene utilizzato insieme alle array (vedremo dopo casa sono e come funzionano); si tratta del ciclo foreach. Lo scopo di foreach è quello di costruire un ciclo che viene ripetuto per ogni elemento dell’array che gli passiamo… tuttavia per questo particolare tipo di ciclo rimando alla lezione (che seguirà) sugli array.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).