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 функциясы,
    ол шартты операторларды орындайды