Ce face switch / match
switch compară o valoare cu mai multe cazuri (case). Este o alternativă mai ordonată la multe elseif-uri. Fiecare caz se termină de obicei cu break.
Din PHP 8 există match: returnează o valoare, compară strict (===) și nu are nevoie de break.
Exemple
Exemplul 1: switch clasic
<?php
$zi = "sâmbătă";
switch ($zi) {
case "sâmbătă":
case "duminică":
echo "Weekend";
break;
default:
echo "Zi lucrătoare";
}
Rezultat
Weekend
Exemplul 2: match (PHP 8+)
<?php
$cod = 404;
$mesaj = match ($cod) {
200 => "OK",
301, 302 => "Redirecționare",
404 => "Pagina nu există",
default => "Altă eroare",
};
echo $mesaj;
Rezultat
Pagina nu există
Greșeli frecvente
- Uiți
breakîntr-unswitch. Codul continuă în cazul următor și rulează și acel bloc. - Un
matchfărădefaultaruncă eroareaUnhandledMatchErrordacă nicio valoare nu se potrivește.
Comenzi înrudite
if / else: Execută un bloc de cod doar dacă o condiție este adevărată.