Le istruzioni condizionali annidate sono semplicemente if all’interno di un altro if.
Questo permette di gestire situazioni più complesse, dove una condizione dipende da un’altra.
1. Sintassi di base
if (condizione1) {
// codice se condizione1 vera
if (condizione2) {
// codice se condizione2 vera
} else {
// codice se condizione2 falsa
}
} else {
// codice se condizione1 falsa
}
2. Esempio pratico
<?php
$eta = 20;
$documento = true;
if ($eta >= 18) {
if ($documento) {
echo "Puoi guidare.";
} else {
echo "Hai l’età giusta ma manca il documento.";
}
} else {
echo "Non puoi guidare, sei minorenne.";
}
?>
Output:
Puoi guidare.
Spiegazione:
- Prima PHP verifica se
$eta >= 18→ vero - Poi controlla
$documento→ vero → esegue"Puoi guidare." - Se una delle due condizioni fosse falsa, verrebbe eseguito il blocco
elsecorrispondente.
3. Vantaggi delle condizioni annidate
- Permettono di gestire più livelli di decisione
- Riducono la complessità di scrivere molte condizioni con
elseif - Rendono il codice più leggibile quando le condizioni sono logicamente collegate
4. Esempi pratici senza if annidati
Puoi anche usare operatori logici (&&, ||) per combinare condizioni in un singolo if:
<?php
$eta = 20;
$documento = true;
if ($eta >= 18 && $documento) {
echo "Puoi guidare.";
} else {
echo "Non puoi guidare.";
}
?>
Output:
Puoi guidare.
Nota: Gli operatori logici sono utili per semplificare alcune annidate, ma a volte l'annidamento è più chiaro quando le decisioni hanno livelli distinti.
5. Esercizi sulle condizioni annidate
Esercizio 1: Accesso a un club
- Regola: deve avere almeno 18 anni e documento valido.
- Se ha meno di 18 anni:
"Accesso negato, minorenne" - Se ha 18+ ma senza documento:
"Accesso negato, manca il documento"
Esercizio 2: Controllo esami
- Regola: uno studente passa se voto ≥ 6
- Se voto ≥ 9:
"Eccellente" - Se voto ≥ 7:
"Buono" - Se voto ≥ 6:
"Sufficiente" - Altrimenti:
"Insufficiente"
Esercizio 3: Controllo sconto
- Regola: cliente paga sconto se è membro del club
- Se il cliente è membro e spesa > 100€ → sconto del 20%
- Se il cliente è membro e spesa ≤ 100€ → sconto del 10%
- Se non è membro → nessuno sconto
Esercizio 4: Controllo stagione
- Regola: controllare il mese e stampare
"Inverno","Primavera","Estate","Autunno" - Usa condizioni annidate per dividere i mesi
Esercizio 5: Controllo permesso speciale
- Regola: una persona può entrare se:
- Ha almeno 18 anni
- Ha il permesso speciale oppure è weekend
- Altrimenti: accesso negato
Conclusione
In questa lezione abbiamo approfondito le istruzioni condizionali annidate in PHP, imparando a combinare più condizioni una dentro l’altra per gestire scenari complessi. Abbiamo visto come strutturare il codice in modo chiaro e controllare con precisione il flusso delle decisioni.
Nella prossima lezione ci concentreremo sul costrutto switch-case, un’alternativa pratica alle condizioni multiple, ideale per gestire più valori possibili di una variabile in modo leggibile ed efficiente.