Corso PHP/ Lezione 6: Costrutti di controllo

In questa puntata vediamo quali sono e come si usano i costrutti che controllano il flusso di esecuzione di uno script

In questa puntata mostreremo, tramite semplici esempi, quali sono e come si utilizzano, nel linguaggio PHP, i costrutti che controllano il flusso di esecuzione del programma, cio del nostro script. Possiamo distinguerne due tipologie: i costrutti condizionali ed i costrutti iterativi.

I costrutti condizionali sono quelli che utilizziamo quando vogliamo che l'esecuzione di un certo blocco di istruzioni avvenga o meno in funzione del valore di una espressione (la condizione); questo il caso del costrutto if. Questa situazione comprende anche il caso in cui abbiamo diversi blocchi di istruzioni e vogliamo che, in base al valore dell'espressione data, venga eseguito soltanto uno di questi (costrutto switch).

I costrutti iterativi, invece, sono quelli che ci permettono di ripetere (iterare, per l'appunto) l'esecuzione di un blocco di istruzioni; il numero di iterazioni potr sia dipendere dal valore di una condizione (costrutto while) sia essere prefissato (costrutto for).
Il costrutto if permette di eseguire un certo insieme di istruzioni solo quando risulti verificata una certa condizione. Nell'esempio seguente, la divisione tra due numeri $a e $b avviene solo se il divisore, $b, diverso da zero.

// $a e $b sono due numeri
if ($b != 0) {
// Il divisore e' diverso da zero
$c = $a / $b;
}


In generale, la sintassi da utilizzare la seguente:

if (condizione)
blocco-istruzioni


dove blocco-istruzioni pu essere sia una singola istruzione PHP sia un insieme di pi istruzioni racchiuso tra parentesi graffe. Se condizione vera allora si esegue blocco-istruzioni.

E' possibile anche fare in modo che un secondo blocco di istruzioni venga eseguito nel caso la condizione risulti falsa. In modo informale, il significato "se vera la condizione esegui il blocco 1, altrimenti esegui il blocco 2". La sintassi la seguente:

if (condizione)
blocco-istruzioni1
else
blocco-istruzioni2


Supponiamo adesso di avere pi blocchi di istruzioni e di voler selezionare quale di questi debba essere eseguito in base al valore di una espressione; il modo pi conveniente ci viene fornito dal costrutto switch. Vediamo un esempio.

// La schedina!
switch($segno) {
case 1:
echo "E' uscito il segno 1!";
break;
case 2:
echo "E' uscito il segno 2!";
break;
default:
echo "E' uscito il segno X.";
}


La sintassi generale di switch la seguente:

switch(espressione) {
case valore1:
blocco-istruzioni1
case valore2:
blocco-istruzioni2
...
}


Ogni blocco di istruzioni si chiude con il costrutto break, che determina l'uscita da switch. Come si evince dall'esempio, tramite la parola chiave deafult si pu prevedere un caso residuale, il cui blocco di istruzioni viene eseguito solo se tutti i confronti precedenti hanno dato esito negativo.