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

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

Primer

Jednostavno upoređivanje broja:

php<?php
  $res = match (2) {
    1 => 'Jedan',
    2 => 'Dva',
    3 => 'Tri',
    default => 'Nepoznato'
  };
  echo $res;
?>

Rezultat izvršenja koda:

php'Dva'

Primer

Upoređivanje sa više uslova:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Dete',
    $age >= 18 && $age < 65 => 'Odrasli',
    $age >= 65 => 'Stariji'
  };
  echo $res;
?>

Rezultat izvršenja koda:

php'Odrasli'

Primer

Korišćenje sa nizovima:

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

php'Prva sekvenca'

Vidite takođe

  • operator switch,
    koji pruža alternativni način grananja
  • funkciju if,
    koja izvršava uslovne izraze