logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Lezioni di PHP - Lezione 8-2 - L’operatore switch

09/10/2025, by Ivan

Nella lezione precedente abbiamo imparato a usare l’istruzione if. L’istruzione if ci permette di verificare se una condizione è vera e, a seconda del risultato, eseguire le azioni necessarie.


Ora immaginiamo di dover eseguire dieci verifiche diverse e, a seconda del risultato, eseguire dieci diverse azioni. Certo, possiamo scriverlo con una serie di if:

<?php
  if($x == 1){
    // azione
  }
  if($x == 2){
    // azione
  }
  if($x == 3){
    // azione
  }
  if($x == 4){
    // azione
  }
  if($x == 5){
    // azione
  }
  if($x == 6){
    // azione
  }
  if($x == 7){
    // azione
  }
  if($x == 8){
    // azione
  }
  if($x == 9){
    // azione
  }
  if($x == 10){
    // azione
  }
?>

Questo metodo funziona, ma è molto più comodo scrivere controlli multipli usando l’operatore switch.

PHP switch

L’operatore switch permette di confrontare un valore con molti casi possibili. Riscriviamo l’esempio precedente usando switch:

<?php
  switch ($x){
    case 1:
      // azione
    break;
    case 2:
      // azione
    break;
    case 3:
      // azione
    break;
    case 4:
      // azione
    break;
    case 5:
      // azione
    break;
    case 6:
      // azione
    break;
    case 7:
      // azione
    break;
    case 8:
      // azione
    break;
    case 9:
      // azione
    break;
    case 10:
      // azione
    break;
    default:
      // azione se nessun altro caso corrisponde
  }
?>

Come puoi vedere, entrambi i metodi funzionano allo stesso modo. Tuttavia, con switch abbiamo anche la possibilità di aggiungere default, che viene eseguito se nessuno dei case precedenti corrisponde (cioè se $x non è compreso tra 1 e 10).

Vediamo ora com’è strutturato lo switch. Per prima cosa scriviamo la parola chiave switch, seguita tra parentesi tonde dal valore o espressione da verificare. Può essere sia un numero che una stringa, ad esempio:

<?php
  switch ($x){
    case 'Hello':

    break;
    case 'Bye':

    break;
  }
?>

Dopo l’espressione da controllare apriamo le parentesi graffe. All’interno scriviamo i possibili case e le relative azioni da eseguire:

<?php
  switch ($x){
    case 'Hello': // valore possibile
      print $x;   // azione
    break; // fine del caso
    case 2:
      $x++;
    break;
  }
?>

Ogni case specifica un valore possibile. Se il valore di $x corrisponde a quello indicato, viene eseguito il blocco di istruzioni associato fino a trovare break;, che interrompe l’esecuzione dello switch. Se dimentichi di inserire break;, l’esecuzione continuerà anche nei casi successivi.

Alla fine puoi inserire default, che verrà eseguito se nessun altro case è stato verificato come vero. Quindi, ricorda due regole fondamentali:

  1. Non dimenticare di mettere break; alla fine di ogni caso.
  2. Nel blocco default il break; è facoltativo, poiché è sempre l’ultimo.

Ecco uno schema a blocchi del funzionamento di switch:

Schema switch

Per esempio, possiamo usare switch per determinare il giorno della settimana in base al numero di giorni trascorsi da un lunedì:

<?php
// $D è il numero di giorni trascorsi dal lunedì
$x = $D % 7;
switch ($x){
  case 1:
    print 'lunedì';
  break;
  case 2:
    print 'martedì';
  break;
  case 3:
    print 'mercoledì';
  break;
  case 4:
    print 'giovedì';
  break;
  case 5:
    print 'venerdì';
  break;
  case 6:
    print 'sabato';
  break;
  case 7:
    print 'domenica';
  break;
}
?>