Tra le novità di PHP 8, c’è il nuovo match , più potente di switch , potrebbe essere una scelta migliore. Vediamo le differenze tra i due, partendo prima con il classico switch :

Adesso, scriviamolo utilizzando match :

Per prima cosa notiamo che l’espressione match è molto più breve:

  • non richiede break
  • può combinare più condizioni utilizzando la virgola
  • restituisce un singolo valore, quindi non c’è bisogno di scriverlo ogni volta

Potrebbe essere già abbastanza, ma ci sono altre feature interessanti

Stretta uguaglianza

match  esegue un controllo più stretto sul tipo, come avviene per l’operatore === :

Gestione dell’errore

Nel caso non avessimo aggiunto il controllo per un valore e non c’è il default specificato, PHP farà il throw  dell’Exception UnhandledMatchError :

Combinazione di condizioni

Abbiamo già visto la mancanza di break, ma probabilmente la novità più interessante è la possibilità di combinare le condizioni, scrivendo un codice più asciutto:

Possibilità di lanciare Exception

Data la modifica a throw in PHP 8, è possibile fare il throw  di una Exception direttamente da una condizione:

Switch o match?

match  è considerabile come la versione moderna di switch a tutti gli effetti. Probabilmente andrà a sostituirla nel corso del tempo, dato che risolve parecchie mancanze ed  ha una sintassi più asciutta.