Pagine

Switch PHP, la scelta

Dopo averlo scritto, mi sembra giusto spiegarlo.
Lo Switch() è una funzione di PHP che permette di ottenere un risultato preciso in base a valori predefiniti.
Per andare sul concreto: questo è l'esempio fatto per le funzioni.

$giorno=date("l",time());
switch($giorno){

     case 'Monday':
           $giornoit="Lunedì";
           break;
      case 'Tuesday':
            $giornoit="Martedì";
            break;
      case 'Wednesday':
            $giornoit="Mercoledì";
            break;
      case 'Thursday':
            $giornoit="Giovedì";
            break;
      case 'Friday':
            $giornoit="Venerdì";
            break;
      case 'Saturday':
            $giornoit="Sabato";
            break;
      case 'Sunday':
            $giornoit="Domenica";
            break;
   default:
            $giornoit="Non so che giorno sia!";

}

In questo caso abbiamo analizzato il giorno corrente e, tramite uno switch, abbiamo convertito il giorno corrente con il relativo nome in Italiano.
Il funzionamento è abbastanza intuitivo:

  1. switch() è la funzione
  2. ($giorno) è il valore da prendere in esame, nel nostro caso il giorno in Inglese estratto dalla funzione date() e dalla lettera L minuscola
  3. case è il caso appunto che analizza la variabile giorno e la confronta con ciò che c'è scritto dopo (es. Monday, Saturday ...)
  4. :  dopo il due punti si trova quello che succede se il caso dovesse risultare vero
  5. break si mette sempre alla fine del caso
  6. default invece è ciò che esegue se NESSUNO dei casi precedenti risulta vero. Non necessita di break
Ricordo sempre che le stringhe vanno inserite tra singoli o doppi apici. In questo caso li ho utilizzati tutti e due come esempio.
Se vedete bene ho specificato nel punto 5 che il break va sempre inserito alla fine del caso. Se noi lo volessimo usare per un differente uso, potremmo, mantenendo il primo esempio, specificare quando è un giorno lavorativo della settimana o il weekend.

switch($giorno){


     case 'Monday':
     case 'Tuesday':
     case 'Wednesday':
     case 'Thursday':
     case 'Friday':
            $giornoit="Si lavora!";
            break;
     case 'Saturday':
     case 'Sunday':
            $giornoit="Finalmente il fine settimana!";
            break;
   default:
            $giornoit="Non so che giorno sia!";

}


Come si può vedere i casi sono messi uno dietro l'altro tranne l'ultimo che conterrà ciò che succederà se uno dei casi precedenti dovesse risultare vero: se sarà martedì o venerdì l'azione sarà sempre la stessa. Se invece dovesse essere sabato o domenica, allora entra in gioco il secondo blocco che specificherà che finalmente è arrivato il weekend.
Molto semplice ma se fate un pò di pratica è meglio!