English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di PHP

PHP Advanced Tutorial

PHP & MySQL

PHP Reference Manual

PHP Switch…Case Statement

In questo tutorial, imparerai come utilizzare la struttura switch-case per testare o valutare espressioni con valori diversi in PHP.

PHP If…Else Vs Switch…Case

La struttura switch-case è un'alternativa alla struttura if-elseif-else e esegue quasi la stessa operazione. La struttura switch-testa una variabile per una serie di valori fino a trovare una corrispondenza, dopodiché esegue il blocco di codice corrispondente a quella corrispondenza.

switch(n){
    case label1:
        // Codice da eseguire quando n=label1
        break;
    case label2:
        // Codice da eseguire quando n=label2
        break;
    ...
    default:
        // Codice da eseguire quando n non corrisponde a nessun etichetta
}

Vedi l'esempio seguente, che mostra messaggi diversi ogni giorno.

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "Oggi è lunedì. Pulisci la tua casa.";
        break;
    case "Tue":
        echo "Oggi è martedì. Compra un po' di cibo.";
        break;
    case "Wed":
        echo "Oggi è mercoledì. Vai dal medico.";
        break;
    case "Thu":
        echo "Oggi è giovedì. Ripara la tua macchina.";
        break;
    case "Fri":
        echo "Oggi è venerdì. Organizza una festa di notte.";
        break;
    case "Sat":
        echo "Oggi è sabato. È il momento di vedere un film.";
        break;
    case "Sun":
        echo "Oggi è domenica. Riposati un po'";
        break;
    default:
        echo "Non ci sono informazioni disponibili oggi.";
        break;
}
<?php
Prova a vedere ›/›

La differenza tra la struttura switch-case e if-elseif-else risiede in un aspetto importante. La struttura switch esegue riga per riga (cioè, istruzione per istruzione), e una volta che PHP trova un caso con un'espressione di condizione true, esegue non solo il codice corrispondente al caso, ma anche tutti i casi successivi fino alla fine della struttura switch. Il blocco switch viene automaticamente cambiato.

Per prevenire questo problema, aggiungi una frase break alla fine di ogni blocco case. La frase break informa PHP di uscire dal blocco switch-case una volta eseguito il codice relativo al primo caso reale.