Konstrukcja match
Konstrukcja match pojawiła się w PHP 8.0 i zapewnia bardziej zwięzły i bezpieczny sposób rozgałęzienia w porównaniu do switch. Przyjmuje wyrażenie do porównania i zwraca wartość pierwszego spełnionego warunku. W przeciwieństwie do switch, match wykonuje ścisłe porównanie (===) i nie wymaga break.
Składnia
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Przykład
Proste dopasowanie liczby:
<?php
$res = match (2) {
1 => 'Jeden',
2 => 'Dwa',
3 => 'Trzy',
default => 'Nieznany'
};
echo $res;
?>
Wynik wykonania kodu:
'Dwa'
Przykład
Dopasowanie z wieloma warunkami:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Dziecko',
$age >= 18 && $age < 65 => 'Dorosły',
$age >= 65 => 'Senior'
};
echo $res;
?>
Wynik wykonania kodu:
'Dorosły'
Przykład
Użycie z tablicami:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Pierwsza sekwencja',
[4, 5, 6] => 'Druga sekwencja',
default => 'Inna sekwencja'
};
echo $res;
?>
Wynik wykonania kodu:
'Pierwsza sekwencja'