La structure match

La structure match est apparue en PHP 8.0 et offre un moyen plus concis et plus sûr de faire des branchements par rapport à switch. Elle prend une expression à comparer et renvoie la valeur de la première condition correspondante. Contrairement à switch, match effectue une comparaison stricte (===) et ne nécessite pas de break.

Syntaxe

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

Exemple

Appartement simple d'un nombre :

php<?php
  $res = match (2) {
    1 => 'Un',
    2 => 'Deux',
    3 => 'Trois',
    default => 'Inconnu'
  };
  echo $res;
?>

Résultat de l'exécution du code :

php'Deux'

Exemple

Appartement avec plusieurs conditions :

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Enfant',
    $age >= 18 && $age < 65 => 'Adulte',
    $age >= 65 => 'Sénior'
  };
  echo $res;
?>

Résultat de l'exécution du code :

php'Adulte'

Exemple

Utilisation avec des tableaux :

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Première séquence',
    [4, 5, 6] => 'Deuxième séquence',
    default => 'Autre séquence'
  };
  echo $res;
?>

Résultat de l'exécution du code :

php'Première séquence'

Voir aussi

  • l'instruction switch,
    qui fournit un autre moyen de faire des branchements
  • la fonction if,
    qui exécute des instructions conditionnelles