Конструктсияи 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,
    ки операторҳои шартиро иҷро мекунад