Konstrukcija match

Konstrukcija match atsirado PHP 8.0 ir siūlo trumpesnį ir saugesnį šakojimosi būdą palyginti su switch. Ji priima palyginimo išraišką ir grąžina pirmos atitikties reikšmę. Skirtingai nuo switch, match atlieka griežtą palyginimą (===) ir nereikalauja break.

Sintaksė

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

Pavyzdys

Paprastas skaičiaus palyginimas:

php<?php
  $res = match (2) {
    1 => 'One',
    2 => 'Two',
    3 => 'Three',
    default => 'Unknown'
  };
  echo $res;
?>

Kodo vykdymo rezultatas:

php'Two'

Pavyzdys

Palyginimas su keliosomis sąlygomis:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Child',
    $age >= 18 && $age < 65 => 'Adult',
    $age >= 65 => 'Senior'
  };
  echo $res;
?>

Kodo vykdymo rezultatas:

php'Adult'

Pavyzdys

Naudojimas su masyvais:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'First sequence',
    [4, 5, 6] => 'Second sequence',
    default => 'Other sequence'
  };
  echo $res;
?>

Kodo vykdymo rezultatas:

php'First sequence'

Taip pat žiūrėkite

  • operatorių switch,
    kuris siūlo alternatyvų šakojimosi būdą
  • funkciją if,
    kuri vykdo sąlyginius operatorius