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.


Veniamo adesso ai costrutti iterativi, iniziando dal while . La
sintassi è la seguente:

while (condizione)

blocco-istruzioni

L’esecuzione di while inizia con la valutazione della condizione; se
quest’ultima risulta verificata allora viene eseguito, una volta, il blocco di
istruzioni e si ricomincia da capo con una nuova valutazione della condizione.
La prima volta che la condizione risulta non verificata si esce dal ciclo.
Nell’esempio seguente viene utilizzato while per contare fino a dieci.

$contatore = 1;

$max = 10;

while ( $contatore <= $max ) {

echo "Ho contato fino a $contatore <br>";

$contatore++;

}

L’output prodotto dall’esempio precedente sarà

Ho contato fino a 1

Ho contato fino a 2



Ho contato fino a 10

Il costrutto while è particolarmente conveniente quando non è
possibile stabilire a priori quante saranno le iterazioni da effettuare.

In molte situazioni pratiche si ha a che fare con iterazioni che lavorano su
indici o contatori; in questi casi utilizzeremo il costrutto for , la cui
sintassi è

for ( espr1; espr2; espr3 )

blocco-istruzioni

L’esecuzione del costrutto for inizia con la valutazione
dell’espressione espr1 , tipicamente una inizializzazione, che avviene
un’unica volta. Successivamente si valuta espr2 (una condizione) e se
questa risulta verificata si eseguono il blocco di istruzioni ed espr3 ,
per poi ritornare alla valutazione di espr2 e così via.

Per fornire un esempio d’uso del for , riscriviamo con tale costrutto
l’esempio precedente del contatore da 1 a 10.

$max = 10;

for ($contatore=1; $contatore<=$max; $contatore++) {

echo "Ho contato fino a $contatore <br>";

}

Per ognuno dei costrutti di controllo PHP supporta anche una sintassi
alternativa che consente di eliminare le parentesi graffe. In proposito si veda
il manuale di riferimento del linguaggio.

Si conclude così la sesta puntata del nostro corso di PHP; con questa
lezione si chiude anche la fase propedeutica del corso: introdotte le nozioni
fondamentali sul linguaggio, dalla prossima lezione inizieremo ad applicare PHP
a casi concreti, mostrando come utilizzarlo per risolvere esigenze reali.

Luca Balzerani , studente di
Informatica, è fondatore e presidente di LatoServer.it ,
sito dedicato alla programmazione server-side ed al backend in generale.

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti