PHP: Le istruzioni condizionali e i cicli



Il PHP come tutti i linguaggi di programmazione, possiede le istruzioni di condizione (scelta) e di iterazione (i cicli), che ciclicamente possono modificare o interagire con i dati.

IF ELSE:
Vedi anche l'operatore di confronto ?:
Il ciclo IF (in italiano SE) pone una scelta, ossia 'se vero' esegui in un modo oppure 'se falso' esegui in un altro modo. I cicli IF si possono annidare fra loro, ossia un ciclo IF ne può contenere un altro.
Esempio:
if ($a==$b){
print "uguali";
}
else{
print "diversi";
}
Le parentesi graffe si usano per raggruppare più informazioni, quindi se ci sono più azioni da fare in una delle ipotesi mettiamo le graffe, se c'è solo un'azione le possiamo anche omettere.
La clausola Else { } è facoltativa, va usata nel caso ci sia un'alternativa se il ciclo if non soddisfa quello indicato fra le parentesi.
Vediamo in quali 'strani' casi if considera falso un ciclo:
Quando una variabile raggiunge il valore zero.
Quando una stringa risulta vuota.
Quando un Array non ha elementi.
Quando una variabile non è stata definita, è stata cancellata, ha valore 'null'.

ELSEIF:
PHP ci fornisce un'altra istruzione per il ciclo IF, ossia l'istruzione ELSEIF.
Esempio:
if ($a==$b){
print "uguali";
}
elseif ($a==$c){
print "uguale a c";
}
elseif ($a==$d){
print "uguale a d";
}
...
...
else{
print "diversi";
}
In sostanza è come un altro ciclo IF all'interno di un ciclo if.
Il server controlla se il primo ciclo (IF) è vero, se è falso va sul ciclo elseif, se è falso pure questo continua con i cicli ELSEIF fino a quando non trova un'alternativa vera oppure l'istruzione finale ELSE (non obbligatoria).

FOR:
Il ciclo for esegue un ciclo di informazioni fino a quando la condizione iniziale non diviene falsa.
La sintassi è la seguente:
for (espressione iniziale; condizione; aggiornamento){
....operazioni....
}
Esempio:
for ($a=0; $a<=3; $a++){
print "ciao $a <br>";
}
Ottiene come risultato:
ciao 0
ciao 1
ciao 2
ciao 3
Un'alternativa potrebbe essere:
for ($a=0; $a<=3;){
print "ciao $a <br>";
$ a++;
}
Importante:
Se la variabile non raggiunge la condizione inserita dentro il ciclo si crea un loop.

FOREACH:
Il ciclo foreach esegue un ciclo su valori contenuti in un array.
La sintassi è la seguente:
foreach ($nomearry as $chiave => $valore) {
...istruzioni...
}
Per ulteriori approfondimenti vi rimandiamo alla pagina degli array.

WHILE:
Il ciclo while dura fino a quando la condizione è vera. Per far questo dobbiamo necessariamente far variare la condizione all'interno del ciclo.
Esempio:
$a = 0;
while($a<=3){
print "ciao $a <br>";
$a++;
}
In questo caso il ciclo while continua fino a quando $a non raggiunge il valore 3.

DO WHILE:
Il ciclo DO WHILE è molto simile al ciclo WHILE. La differenza sostanziale è che il ciclo WHILE può non essere eseguito, questo se la condizione risulta falsa fin dall'inizio. Il ciclo DO WHILE si esegue sempre, almeno per una volta.
Questo perché il ciclo DO WHILE inserisce prima le azioni da fare e dopo la condizione. Il server esegue le prime istruzioni, poi legge la condizione e se è sempre vera riesegue le istruzioni.
Esempio:
do {
...azioni...
}
while(condizione)


SWITCH:
L'istruzione switch non è un vero e proprio ciclo. Switch viene usato quando abbiamo più alternative da vagliare e non vogliamo inserire più cicli if annidati fra loro.
Supponiamo per esempio di inserire una variabile e di dover agire in maniera diversa se questa variabile corrisponde a due valori. Con l'istruzione if dovremo scrivere due cicli annidati, con switch ne basta uno.
Questo è il codice:
switch ($a) {
case 'ciao':
print "ci vediamo presto";
break;
case 'addio':
print "non torni più?";
break;
default:
print "forse tornerai";
}
Dove DEFAULT raccoglie tutte le altre opzioni (come ELSE nel ciclo IF), ma non è obbligatorio.
Altra soluzione ciclo SWITCH:
switch ($a) {
case 'ciao':
case 'ciaociao':
case 'ciaociaociao':
print "ci vediamo presto";
break;
case 'addio':
print "non torni più?";
break;
default:
print "forse tornerai";
}
In questo caso abbiamo associato tre valori per l'istruzione print "ci vediamo presto";
Questo perché fino a quando non trova break il server continua ad eseguire le istruzioni.

CONTINUE:
CONTINUE interrompe il ciclo ma non esce, infatti ritorna al suo inizio e continua il suo lavoro. Non azzera però il valore delle variabili, si può usare se uno o più valori non devono influire.
Esempio:
for ($a=1; $a<=4; $a++){
if ($a==3)
continue;
else
print "ciao $a <br>";
}
In questo caso otteniamo:
ciao 1
ciao 2
ciao 4

BREAK:
Al contrario di CONTINUE, che in pratica fa saltare un giro al ciclo, il comando BREAK interrompe il ciclo e riprende dalla prima riga sotto il ciclo.

LOOP:
Il loop non è un ciclo, è l'errore generato da un ciclo infinito.
La causa del loop è una variabile che non raggiunge mai il valore che interrompe il ciclo.
Nel caso di PHP non si crea la pagina da visualizzare, o nel caso peggiore blocca il pc utente, mentre il server passati 30 secondi termina automaticamente l'esecuzione del codice.

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)