match-rakenne
match-rakenne ilmestyi PHP 8.0:ssa ja tarjoaa lyhyemmän ja turvallisemman tavan haarukoida verrattuna switch:ään. Se ottaa vastaan lausekkeen vertailua varten ja palauttaa ensimmäisen täsmänneen ehdon arvon. Toisin kuin switch, match suorittaa tiukan vertailun (===) eikä vaadi break:iä.
Syntaksi
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Esimerkki
Yksinkertainen luvun vastaavuus:
<?php
$res = match (2) {
1 => 'Yksi',
2 => 'Kaksi',
3 => 'Kolme',
default => 'Tuntematon'
};
echo $res;
?>
Koodin suorituksen tulos:
'Kaksi'
Esimerkki
Vastaavuus useilla ehdoilla:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Lapsi',
$age >= 18 && $age < 65 => 'Aikuinen',
$age >= 65 => 'Seniori'
};
echo $res;
?>
Koodin suorituksen tulos:
'Aikuinen'
Esimerkki
Käyttö taulukoilla:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Ensimmäinen jono',
[4, 5, 6] => 'Toinen jono',
default => 'Muu jono'
};
echo $res;
?>
Koodin suorituksen tulos:
'Ensimmäinen jono'