Constructie match

De constructie match werd geïntroduceerd in PHP 8.0 en biedt een beknoptere en veiligere manier voor vertakking in vergelijking met switch. Het neemt een expressie voor vergelijking en retourneert de waarde van de eerste overeenkomende voorwaarde. In tegenstelling tot switch, voert match een strikte vergelijking uit (===) en vereist het geen break.

Syntaxis

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

Voorbeeld

Eenvoudige matching van een getal:

php<?php
  $res = match (2) {
    1 => 'Een',
    2 => 'Twee',
    3 => 'Drie',
    default => 'Onbekend'
  };
  echo $res;
?>

Resultaat van de code-uitvoering:

php'Twee'

Voorbeeld

Matching met meerdere voorwaarden:

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

Resultaat van de code-uitvoering:

php'Volwassene'

Voorbeeld

Gebruik met arrays:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Eerste reeks',
    [4, 5, 6] => 'Tweede reeks',
    default => 'Andere reeks'
  };
  echo $res;
?>

Resultaat van de code-uitvoering:

php'Eerste reeks'

Zie ook

  • de switch-statement,
    die een alternatieve manier voor vertakking biedt
  • de if-functie,
    die conditionele statements uitvoert