Konstrukce match
Konstrukce match se objevila ve PHP 8.0 a poskytuje stručnější a bezpečnější způsob větvení ve srovnání s switch. Přijímá výraz pro porovnání a vrací hodnotu první shodné podmínky. Na rozdíl od switch, match provádí striktní porovnání (===) a nevyžaduje break.
Syntaxe
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Příklad
Jednoduché porovnání čísla:
<?php
$res = match (2) {
1 => 'Jedna',
2 => 'Dva',
3 => 'Tři',
default => 'Neznámé'
};
echo $res;
?>
Výsledek provedení kódu:
'Dva'
Příklad
Porovnání s více podmínkami:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Dítě',
$age >= 18 && $age < 65 => 'Dospělý',
$age >= 65 => 'Senior'
};
echo $res;
?>
Výsledek provedení kódu:
'Dospělý'
Příklad
Použití s poli:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'První sekvence',
[4, 5, 6] => 'Druhá sekvence',
default => 'Jiná sekvence'
};
echo $res;
?>
Výsledek provedení kódu:
'První sekvence'