Konstrukcija match
Konstrukcija match parādījās PHP 8.0 un nodrošina īsāku un drošāku veidu koda zarošanai salīdzinājumā ar switch. Tā pieņem izteiksmi salīdzināšanai un atgriež pirmā atbilstošā nosacījuma vērtību. Atšķirībā no switch, match veic stingru salīdzināšanu (===) un neprasa break.
Sintakse
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Piemērs
Vienkārša skaitļa salīdzināšana:
<?php
$res = match (2) {
1 => 'One',
2 => 'Two',
3 => 'Three',
default => 'Unknown'
};
echo $res;
?>
Koda izpildes rezultāts:
'Two'
Piemērs
Salīdzināšana ar vairākiem nosacījumiem:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Child',
$age >= 18 && $age < 65 => 'Adult',
$age >= 65 => 'Senior'
};
echo $res;
?>
Koda izpildes rezultāts:
'Adult'
Piemērs
Izmantošana ar masīviem:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'First sequence',
[4, 5, 6] => 'Second sequence',
default => 'Other sequence'
};
echo $res;
?>
Koda izpildes rezultāts:
'First sequence'