Switch vs match en php

switch vs mach en php.

php est l'un des langages les plus connus dans l'écosystème de développement informatique, en particulier dans le développement Web. Un des langages open source en pleine évolution depuis deux décennies. Après cette mise à jour remarquable depuis la sortie de la version Php 8.0. Il sied de signaler que cette mise à jour est d'autant mieux observable.

Dans cet article nous allons décortiquer une nouvelle fonctionnalité constatée : l'expression match Avant d'expliquer cette fonctionnalité parlons d'abord de son équivalent dans les anciennes versions de php.

2. Le switch

Une structure alternative, nous aidant à faire un choix sur multiple possibilités. Illustrons cela par un code:

 switch ($var) {
  case 'a':
      $message = "La variable  est a.";
      break;
  case 'b':
    $message = "La variable est c.";
    break;
 case 'c':
    $message = "La  variable est c.";
    break;
default:
      $message = "une autre variable .";
     break;
 }

 print $message;

Même si le travail est fait, la méthode classique du suite regorge certaine limite, notamment dans la gestion des erreurs, l'égalité entre la variable passée en paramètre et ceux du choix. Car le switch ne tient pas compte de l'égalité stricte === cad l'égalité en type et en valeur.

2. le match

Présent dans la nouvelle version de php, le match ne vient pas remplacer le switch qui reste toujours utilisé.
cependant il devient une bonne alternative face à certaines situations. Illustrons cela par un extrait de code.

$message = match($var) {
   'a' => 'la variable est a',
   'b' => 'la variable est b',
   'c' => 'la  variable est c',
  default => 'une  autre variable ',
};
 print $message;

Non seulement le code devient léger, mais il devient aussi consistant est stricte pourquoi ? parce que le match evalue aussi l'égalité du type de variable passée en paramètre et le type des valeurs de choix.

3. Quelques différences du match et du switch :

. Le switch utilise la faible égalité == pour comparer les cases (choix) tandis que le match utilise la forte ou stricte égalité === ce qui prend en charge aussi du type.

  • Le switch utilise le break pour les fall backs alors que dans le match cela n'est pas pris en charge et vous avez pas besoin du break.

  • le match peut avoir des valeurs de choix séparées par des virgules pour former une seule expression alors que dans le switch nous utilisons qu'une seule valeur de choix.

exemple des valeurs des choix séparées par virgule:

$message = match ($var) {
'+', '-', '/', '*'  => 'opération arithmétique '
};

Nb : Match est considéré surtout comme une expression, cela exige un poing virgule après l'accolade.

Cela était la présentation d'une nouvelle fonctionnalité l'expression match implémentée en php 8.0. Et son utilisation en lieu et place du fameux et classique switch.

Merci de partager l'article et de vous abonner à la news letter pour ne pas manquer mon prochain article.

Did you find this article valuable?

Support lushidev by becoming a sponsor. Any amount is appreciated!