Konstrukcija match

Konstrukcija match parādījās PHP 8.0 un nodrošina īsāku un drošāku veidu koda zarošanai salīdzinājumā ar switch. Tā pieņem izteiksmi salīdzināšanai un atgriež pirmā atbilstošā nosacījuma vērtību. Atšķirībā no switch, match veic stingru salīdzināšanu (===) un neprasa break.

Sintakse

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

Piemērs

Vienkārša skaitļa salīdzināšana:

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

Koda izpildes rezultāts:

php'Two'

Piemērs

Salīdzināšana ar vairākiem nosacījumiem:

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

Koda izpildes rezultāts:

php'Adult'

Piemērs

Izmantošana ar masīviem:

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

Koda izpildes rezultāts:

php'First sequence'

Skatiet arī

  • operatoru switch,
    kas nodrošina alternatīvu veidu koda zarošanai
  • funkciju if,
    kas izpilda nosacījumus