A match szerkezet

A match szerkezet a PHP 8.0-ban jelent meg, és rövidebb és biztonságosabb módot kínál az elágazásra a switch-hez képest. Egy kifejezést vesz fel összehasonlításra, és az első egyező feltétel értékét adja vissza. A switch-től eltérően a match szigorú összehasonlítást (===) végez, és nem igényel break-et.

Szintaxis

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

Példa

Egyszerű szám egyeztetés:

php<?php
  $res = match (2) {
    1 => 'Egy',
    2 => 'Kettő',
    3 => 'Három',
    default => 'Ismeretlen'
  };
  echo $res;
?>

A kód végrehajtásának eredménye:

php'Kettő'

Példa

Egyeztetés több feltétellel:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Gyermek',
    $age >= 18 && $age < 65 => 'Felnőtt',
    $age >= 65 => 'Idős'
  };
  echo $res;
?>

A kód végrehajtásának eredménye:

php'Felnőtt'

Példa

Használat tömbökkel:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Első sorozat',
    [4, 5, 6] => 'Második sorozat',
    default => 'Egyéb sorozat'
  };
  echo $res;
?>

A kód végrehajtásának eredménye:

php'Első sorozat'

Lásd még

  • a switch operátor,
    amely alternatív módot kínál az elágazásra
  • a if függvény,
    amely feltételes utasításokat hajt végre