Konstruktionen match
Konstruktionen match introducerades i PHP 8.0 och erbjuder ett mer koncist och säkert sätt att förgrena jämfört med switch. Den tar ett uttryck för jämförelse och returnerar värdet från det första matchande villkoret. Till skillnad från switch utför match strikt jämförelse (===) och kräver inte break.
Syntax
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Exempel
Enkel matchning av ett nummer:
<?php
$res = match (2) {
1 => 'Ett',
2 => 'Två',
3 => 'Tre',
default => 'Okänt'
};
echo $res;
?>
Resultat av kodkörning:
'Två'
Exempel
Matchning med flera villkor:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Barn',
$age >= 18 && $age < 65 => 'Vuxen',
$age >= 65 => 'Pensionär'
};
echo $res;
?>
Resultat av kodkörning:
'Vuxen'
Exempel
Användning med arrayer:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Första sekvensen',
[4, 5, 6] => 'Andra sekvensen',
default => 'Annan sekvens'
};
echo $res;
?>
Resultat av kodkörning:
'Första sekvensen'