Konstrukcija match
Konstrukcija match atsirado PHP 8.0 ir siūlo trumpesnį ir saugesnį šakojimosi būdą palyginti su switch. Ji priima palyginimo išraišką ir grąžina pirmos atitikties reikšmę. Skirtingai nuo switch, match atlieka griežtą palyginimą (===) ir nereikalauja break.
Sintaksė
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Pavyzdys
Paprastas skaičiaus palyginimas:
<?php
$res = match (2) {
1 => 'One',
2 => 'Two',
3 => 'Three',
default => 'Unknown'
};
echo $res;
?>
Kodo vykdymo rezultatas:
'Two'
Pavyzdys
Palyginimas su keliosomis sąlygomis:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Child',
$age >= 18 && $age < 65 => 'Adult',
$age >= 65 => 'Senior'
};
echo $res;
?>
Kodo vykdymo rezultatas:
'Adult'
Pavyzdys
Naudojimas su masyvais:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'First sequence',
[4, 5, 6] => 'Second sequence',
default => 'Other sequence'
};
echo $res;
?>
Kodo vykdymo rezultatas:
'First sequence'