Konstruktionen match

Konstruktionen match dukkede op i PHP 8.0 og giver en mere kort og sikker måde at forgrene sig på sammenlignet med switch. Den tager et udtryk til sammenligning og returnerer værdien af den første matchende betingelse. I modsætning til switch udfører match streng sammenligning (===) og kræver ikke break.

Syntaks

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

Eksempel

Simpel sammenligning af et tal:

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

Resultat af kodeudførelse:

php'Two'

Eksempel

Sammenligning med flere betingelser:

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

Resultat af kodeudførelse:

php'Adult'

Eksempel

Brug med 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;
?>

Resultat af kodeudførelse:

php'First sequence'

Se også

  • operatoren switch,
    som giver en alternativ måde at forgrene sig på
  • funktionen if,
    som udfører betingede udsagn