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ă

php$result = match ($value) {
  condition1 => result1,
  condition2 => result2,
  ...
  default => default_result
};

Exemplu

Potrivire simplă a unui număr:

php<?php
  $res = match (2) {
    1 => 'Unu',
    2 => 'Doi',
    3 => 'Trei',
    default => 'Necunoscut'
  };
  echo $res;
?>

Rezultatul executării codului:

php'Doi'

Exemplu

Potrivire cu mai multe condiții:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Copil',
    $age >= 18 && $age < 65 => 'Adult',
    $age >= 65 => 'Vârstnic'
  };
  echo $res;
?>

Rezultatul executării codului:

php'Adult'

Exemplu

Utilizarea cu tablouri:

php<?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:

php'Prima secvență'

Vezi și

  • operatorul switch,
    care oferă o metodă alternativă de ramificare
  • funcția if,
    care execută instrucțiuni condiționale