Konstruktion match

Die Konstruktion match wurde in PHP 8.0 eingeführt und bietet eine kürzere und sicherere Methode für die Verzweigung im Vergleich zu switch. Sie nimmt einen Ausdruck für den Vergleich entgegen und gibt den Wert der ersten zutreffenden Bedingung zurück. Im Gegensatz zu switch führt match einen strikten Vergleich (===) durch und erfordert kein break.

Syntax

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

Beispiel

Einfacher Zahlenvergleich:

php<?php
  $res = match (2) {
    1 => 'One',
    2 => 'Two',
    3 => 'Three',
    default => 'Unknown'
  };
  echo $res;
?>

Code-Ausführungsergebnis:

php'Two'

Beispiel

Vergleich mit mehreren Bedingungen:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Child',
    $age >= 18 && $age < 65 => 'Adult',
    $age >= 65 => 'Senior'
  };
  echo $res;
?>

Code-Ausführungsergebnis:

php'Adult'

Beispiel

Verwendung mit Arrays:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'First sequence',
    [4, 5, 6] => 'Second sequence',
    default => 'Other sequence'
  };
  echo $res;
?>

Code-Ausführungsergebnis:

php'First sequence'

Siehe auch

  • die Anweisung switch,
    die eine alternative Verzweigungsmethode bietet
  • die Funktion if,
    die bedingte Anweisungen ausführt