Konstrukce match

Konstrukce match se objevila ve PHP 8.0 a poskytuje stručnější a bezpečnější způsob větvení ve srovnání s switch. Přijímá výraz pro porovnání a vrací hodnotu první shodné podmínky. Na rozdíl od switch, match provádí striktní porovnání (===) a nevyžaduje break.

Syntaxe

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

Příklad

Jednoduché porovnání čísla:

php<?php
  $res = match (2) {
    1 => 'Jedna',
    2 => 'Dva',
    3 => 'Tři',
    default => 'Neznámé'
  };
  echo $res;
?>

Výsledek provedení kódu:

php'Dva'

Příklad

Porovnání s více podmínkami:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Dítě',
    $age >= 18 && $age < 65 => 'Dospělý',
    $age >= 65 => 'Senior'
  };
  echo $res;
?>

Výsledek provedení kódu:

php'Dospělý'

Příklad

Použití s poli:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'První sekvence',
    [4, 5, 6] => 'Druhá sekvence',
    default => 'Jiná sekvence'
  };
  echo $res;
?>

Výsledek provedení kódu:

php'První sekvence'

Viz také

  • operátor switch,
    který poskytuje alternativní způsob větvení
  • funkci if,
    která provádí podmíněné příkazy