Constructia match
Constructia match a apărut în PHP 8.0 și oferă o metodă mai scurtă și mai sigură de ramificare în comparație cu switch. Ea acceptă o expresie pentru comparare și returnează valoarea primei condiții care se potrivește. Spre deosebire de switch, match efectuează o comparare strictă (===) și nu necesită break.
Sintaxă
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Exemplu
Potrivire simplă a unui număr:
<?php
$res = match (2) {
1 => 'Unu',
2 => 'Doi',
3 => 'Trei',
default => 'Necunoscut'
};
echo $res;
?>
Rezultatul executării codului:
'Doi'
Exemplu
Potrivire cu mai multe condiții:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Copil',
$age >= 18 && $age < 65 => 'Adult',
$age >= 65 => 'Vârstnic'
};
echo $res;
?>
Rezultatul executării codului:
'Adult'
Exemplu
Utilizarea cu tablouri:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Prima secvență',
[4, 5, 6] => 'A doua secvență',
default => 'Altă secvență'
};
echo $res;
?>
Rezultatul executării codului:
'Prima secvență'