Costrutto match
Il costrutto match è apparso in PHP 8.0 e fornisce un modo più conciso e sicuro per ramificare rispetto a switch. Accetta un'espressione per il confronto e restituisce il valore della prima condizione corrispondente. A differenza di switch, match esegue un confronto stretto (===) e non richiede break.
Sintassi
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Esempio
Semplice corrispondenza di un numero:
<?php
$res = match (2) {
1 => 'Uno',
2 => 'Due',
3 => 'Tre',
default => 'Sconosciuto'
};
echo $res;
?>
Risultato dell'esecuzione del codice:
'Due'
Esempio
Corrispondenza con più condizioni:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Bambino',
$age >= 18 && $age < 65 => 'Adulto',
$age >= 65 => 'Anziano'
};
echo $res;
?>
Risultato dell'esecuzione del codice:
'Adulto'
Esempio
Utilizzo con gli array:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Prima sequenza',
[4, 5, 6] => 'Seconda sequenza',
default => 'Altra sequenza'
};
echo $res;
?>
Risultato dell'esecuzione del codice:
'Prima sequenza'