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:

  1. Prima PHP verifica se $eta >= 18 → vero
  2. Poi controlla $documento → vero → esegue "Puoi guidare."
  3. Se una delle due condizioni fosse falsa, verrebbe eseguito il blocco else corrispondente.

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:
    1. Ha almeno 18 anni
    2. 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.

🐍

Vuoi imparare Python da zero?

Scarica la guida gratuita Python in 10 giorni: 10 lezioni pratiche con esempi ed esercizi, direttamente nella tua email.

📥 Scarica gratis il PDF →