Конструкција match

Конструкција match се појавила у PHP 8.0 и пружа краћи и безбеднији начин гранања у поређењу са switch. Она прихвата израз за поређење и враћа вредност првог услова који се поклопи. За разлику од switch, match извршава строго поређење (===) и не захтева break.

Синтакса

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

Пример

Једноставно упоређивање броја:

php<?php
  $res = match (2) {
    1 => 'Један',
    2 => 'Два',
    3 => 'Три',
    default => 'Непознато'
  };
  echo $res;
?>

Резултат извршавања кода:

php'Два'

Пример

Упоређивање са више услова:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Дете',
    $age >= 18 && $age < 65 => 'Одрастао',
    $age >= 65 => 'Сениор'
  };
  echo $res;
?>

Резултат извршавања кода:

php'Одрастао'

Пример

Коришћење са низовима:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Прва секвенца',
    [4, 5, 6] => 'Друга секвенца',
    default => 'Друга секвенца'
  };
  echo $res;
?>

Резултат извршавања кода:

php'Прва секвенца'

Погледајте такође

  • оператор switch,
    који пружа алтернативни начин гранања
  • функцију if,
    која извршава условне операторе