Lezione 6: Strutture di Controllo - If, Else, Elseif
Benvenuti alla sesta lezione del nostro corso di PHP per principianti! Nelle lezioni precedenti abbiamo imparato a utilizzare variabili, tipi di dati e operatori. Oggi scopriremo le strutture di controllo, che permettono ai nostri programmi di prendere decisioni e eseguire codice diverso in base a condizioni specifiche.
Cosa Sono le Strutture di Controllo?
Le strutture di controllo sono costrutti che permettono di controllare il flusso di esecuzione del programma. Invece di eseguire il codice sempre in sequenza dall'alto verso il basso, possiamo far "saltare" alcune parti o ripetere altre in base a condizioni specifiche.
1. La Struttura IF
La struttura if
è la più semplice: esegue un blocco di codice solo se una condizione è vera (true
).
Sintassi:
<?php
if (condizione) {
// Codice da eseguire se la condizione è vera
}
?>
Esempio Pratico:
<?php
$eta = 18;
if ($eta >= 18) {
echo "Sei maggiorenne!";
}
?>
In questo esempio, il messaggio "Sei maggiorenne!" verrà mostrato solo se l'età è maggiore o uguale a 18.
2. La Struttura IF-ELSE
Con if-else
possiamo specificare cosa fare quando la condizione è falsa.
Sintassi:
<?php
if (condizione) {
// Codice se la condizione è vera
} else {
// Codice se la condizione è falsa
}
?>
Esempio Pratico:
<?php
$eta = 16;
if ($eta >= 18) {
echo "Sei maggiorenne, puoi guidare!";
} else {
echo "Sei minorenne, non puoi ancora guidare.";
}
// Output: "Sei minorenne, non puoi ancora guidare."
?>
3. La Struttura IF-ELSEIF-ELSE
Quando abbiamo più condizioni da verificare, usiamo elseif
.
Sintassi:
<?php
if (condizione1) {
// Codice per condizione1
} elseif (condizione2) {
// Codice per condizione2
} elseif (condizione3) {
// Codice per condizione3
} else {
// Codice se nessuna condizione è vera
}
?>
Esempio Pratico - Sistema di Voti:
<?php
$voto = 85;
if ($voto >= 90) {
echo "Eccellente! Voto: A";
} elseif ($voto >= 80) {
echo "Ottimo! Voto: B";
} elseif ($voto >= 70) {
echo "Buono! Voto: C";
} elseif ($voto >= 60) {
echo "Sufficiente! Voto: D";
} else {
echo "Insufficiente! Voto: F";
}
// Output: "Ottimo! Voto: B"
?>
4. Condizioni Complesse
Possiamo combinare più condizioni usando gli operatori logici che abbiamo imparato nella lezione precedente.
Esempio con AND (&&):
<?php
$eta = 25;
$ha_patente = true;
if ($eta >= 18 && $ha_patente) {
echo "Puoi noleggiare un'auto!";
} else {
echo "Non puoi noleggiare un'auto.";
}
?>
Esempio con OR (||):
<?php
$giorno = "sabato";
$e_festa = false;
if ($giorno == "sabato" || $giorno == "domenica" || $e_festa) {
echo "È un giorno di riposo!";
} else {
echo "È un giorno lavorativo.";
}
?>
5. Esempi Pratici Completi
Esempio 1: Calcolatore di Sconti
<?php
$importo_acquisto = 150;
$e_cliente_vip = true;
$sconto = 0;
if ($importo_acquisto >= 200) {
$sconto = 20; // 20% di sconto
echo "Sconto del 20% applicato!";
} elseif ($importo_acquisto >= 100) {
$sconto = 10; // 10% di sconto
echo "Sconto del 10% applicato!";
} elseif ($importo_acquisto >= 50) {
$sconto = 5; // 5% di sconto
echo "Sconto del 5% applicato!";
}
// Sconto aggiuntivo per clienti VIP
if ($e_cliente_vip) {
$sconto += 5;
echo "<br>Sconto VIP del 5% aggiuntivo!";
}
$importo_finale = $importo_acquisto * (1 - $sconto / 100);
echo "<br>Importo finale: €" . number_format($importo_finale, 2);
?>
Esempio 2: Controllo Password
<?php
$password = "MiaPassword123!";
$lunghezza = strlen($password);
$ha_maiuscole = preg_match('/[A-Z]/', $password);
$ha_numeri = preg_match('/[0-9]/', $password);
$ha_simboli = preg_match('/[!@#$%^&*()]/', $password);
if ($lunghezza < 8) {
echo "Password troppo corta! Minimo 8 caratteri.";
} elseif (!$ha_maiuscole) {
echo "Password deve contenere almeno una lettera maiuscola.";
} elseif (!$ha_numeri) {
echo "Password deve contenere almeno un numero.";
} elseif (!$ha_simboli) {
echo "Password deve contenere almeno un simbolo speciale.";
} else {
echo "Password sicura! ✓";
}
?>
Esempio 3: Calcolatore BMI
<?php
$peso = 70; // kg
$altezza = 1.75; // metri
$bmi = $peso / ($altezza * $altezza);
$bmi = round($bmi, 1);
echo "Il tuo BMI è: " . $bmi . "<br>";
if ($bmi < 18.5) {
echo "Sottopeso";
} elseif ($bmi < 25) {
echo "Peso normale";
} elseif ($bmi < 30) {
echo "Sovrappeso";
} else {
echo "Obesità";
}
?>
6. Buone Pratiche
1. Usa le Parentesi Graffe
Anche per una sola istruzione, è sempre meglio usare le parentesi graffe:
// Meglio così:
if ($eta >= 18) {
echo "Maggiorenne";
}
// Evita questo:
if ($eta >= 18)
echo "Maggiorenne";
2. Indentazione Corretta
Mantieni sempre una corretta indentazione per rendere il codice leggibile:
if ($condizione1) {
if ($condizione2) {
echo "Entrambe le condizioni sono vere";
}
}
3. Condizioni Chiare
Scrivi condizioni che siano facili da capire:
// Meglio così:
$e_maggiorenne = ($eta >= 18);
if ($e_maggiorenne) {
// codice
}
// Invece di:
if ($eta >= 18) {
// codice
}
Prossimi Passi
Nella prossima lezione impareremo i cicli (for
, while
, foreach
) che ci permetteranno di ripetere blocchi di codice più volte, rendendo i nostri programmi ancora più potenti!
Esercizio per casa: Crea un programma che:
- Chieda l'età di una persona
- Determini se può guidare (18+), bere alcolici (21+ in alcuni paesi), o andare in pensione (65+)
- Mostri un messaggio appropriato per ogni caso
- Gestisca il caso di età non valide (negative o superiori a 120)