match-rakenne

match-rakenne ilmestyi PHP 8.0:ssa ja tarjoaa lyhyemmän ja turvallisemman tavan haarukoida verrattuna switch:ään. Se ottaa vastaan lausekkeen vertailua varten ja palauttaa ensimmäisen täsmänneen ehdon arvon. Toisin kuin switch, match suorittaa tiukan vertailun (===) eikä vaadi break:iä.

Syntaksi

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

Esimerkki

Yksinkertainen luvun vastaavuus:

php<?php
  $res = match (2) {
    1 => 'Yksi',
    2 => 'Kaksi',
    3 => 'Kolme',
    default => 'Tuntematon'
  };
  echo $res;
?>

Koodin suorituksen tulos:

php'Kaksi'

Esimerkki

Vastaavuus useilla ehdoilla:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Lapsi',
    $age >= 18 && $age < 65 => 'Aikuinen',
    $age >= 65 => 'Seniori'
  };
  echo $res;
?>

Koodin suorituksen tulos:

php'Aikuinen'

Esimerkki

Käyttö taulukoilla:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Ensimmäinen jono',
    [4, 5, 6] => 'Toinen jono',
    default => 'Muu jono'
  };
  echo $res;
?>

Koodin suorituksen tulos:

php'Ensimmäinen jono'

Katso myös

  • switch-operaattori,
    joka tarjoaa vaihtoehtoisen tavan haarukointiin
  • if-funktio,
    joka suorittaa ehdollisia lausekkeita