Konstruksjonen match

Konstruksjonen match dukket opp i PHP 8.0 og gir en mer kortfattet og sikker måte å forgrene seg på sammenlignet med switch. Den tar et uttrykk for sammenligning og returnerer verdien til den første matchende betingelsen. I motsetning til switch, utfører match streng sammenligning (===) og krever ikke break.

Syntaks

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

Eksempel

Enkelt mønstersamsvar for tall:

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

Resultat av kjøring:

php'Two'

Eksempel

Mønstersamsvar med flere betingelser:

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

Resultat av kjøring:

php'Adult'

Eksempel

Bruk 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 av kjøring:

php'First sequence'

Se også

  • setningen switch,
    som gir en alternativ måte å forgrene seg på
  • funksjonen if,
    som utfører betingede setninger