Konstrukcija match
Konstrukcija match pojavila se u PHP 8.0 i pruža kraći i bezbedniji načan grananja u poređenju sa switch. Ona prihvata izraz za upoređivanje i vraća vrednost prvog uslova koji se poklapa. Za razliku od switch, match izvodi strogo upoređivanje (===) i ne zahteva break.
Sintaksa
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Primer
Jednostavno upoređivanje broja:
<?php
$res = match (2) {
1 => 'Jedan',
2 => 'Dva',
3 => 'Tri',
default => 'Nepoznato'
};
echo $res;
?>
Rezultat izvršenja koda:
'Dva'
Primer
Upoređivanje sa više uslova:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Dete',
$age >= 18 && $age < 65 => 'Odrasli',
$age >= 65 => 'Stariji'
};
echo $res;
?>
Rezultat izvršenja koda:
'Odrasli'
Primer
Korišćenje sa nizovima:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Prva sekvenca',
[4, 5, 6] => 'Druga sekvenca',
default => 'Druga sekvenca'
};
echo $res;
?>
Rezultat izvršenja koda:
'Prva sekvenca'