Konstrukcja match

Konstrukcja match pojawiła się w PHP 8.0 i zapewnia bardziej zwięzły i bezpieczny sposób rozgałęzienia w porównaniu do switch. Przyjmuje wyrażenie do porównania i zwraca wartość pierwszego spełnionego warunku. W przeciwieństwie do switch, match wykonuje ścisłe porównanie (===) i nie wymaga break.

Składnia

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

Przykład

Proste dopasowanie liczby:

php<?php
  $res = match (2) {
    1 => 'Jeden',
    2 => 'Dwa',
    3 => 'Trzy',
    default => 'Nieznany'
  };
  echo $res;
?>

Wynik wykonania kodu:

php'Dwa'

Przykład

Dopasowanie z wieloma warunkami:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Dziecko',
    $age >= 18 && $age < 65 => 'Dorosły',
    $age >= 65 => 'Senior'
  };
  echo $res;
?>

Wynik wykonania kodu:

php'Dorosły'

Przykład

Użycie z tablicami:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Pierwsza sekwencja',
    [4, 5, 6] => 'Druga sekwencja',
    default => 'Inna sekwencja'
  };
  echo $res;
?>

Wynik wykonania kodu:

php'Pierwsza sekwencja'

Zobacz też

  • operator switch,
    który zapewnia alternatywny sposób rozgałęzienia
  • funkcję if,
    która wykonuje instrukcje warunkowe