logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Leçons PHP - leçon 8-2 - L’opérateur switch

05/07/2025, by Ivan

Dans la leçon précédente, nous avons découvert l’opérateur if. L’opérateur if permet de vérifier la vérité d’une condition et d’exécuter les actions nécessaires selon le résultat.


Imaginons maintenant qu’il faille effectuer dix vérifications et, selon le résultat, réaliser l’une des dix actions. Bien sûr, on peut écrire cela avec if :

<?php
  if($x == 1){
    // actions
  }
  if($x == 2){
    // actions
  }
  if($x == 3){
    // actions 
  }
  if($x == 4){
    // actions 
  }
  if($x == 5){
    // actions 
  }
  if($x == 6){
    // actions 
  }
  if($x == 7){
    // actions 
  }
  if($x == 8){
     // actions
  }
  if($x == 9){
    // actions 
  }
  if($x == 10){
    // actions
  }
?>

Cette méthode fonctionne, mais il est préférable d’écrire ce genre de vérifications avec l’opérateur SWITCH.
PHP switch
L’opérateur switch permet de vérifier la valeur d’une expression selon plusieurs cas. Reprenons l’exemple précédent en utilisant switch :

<?php
  switch ($x){
    case 1:
      // actions   
    break;
    case 2:
      // actions       
    break;
    case 3:
      // actions       
    break;
    case 4:
      // actions       
    break;
    case 5:
      // actions       
    break;
    case 6:
      // actions       
    break;
    case 7:
      // actions       
    break;
    case 8:
      // actions       
    break;
    case 9:
      // actions       
    break;
    case 10:
      // actions       
    break;
    default:   
      // actions si aucune des conditions précédentes n’est remplie
  }
?>

Comme je l’ai dit, les deux exemples fonctionnent de la même façon, sauf que dans switch j’ai ajouté default, qui s’exécute si $x n’est pas entre 1 et 10.
Décomposons la construction switch. On commence par l’opérateur switch, suivi entre parenthèses de l’expression à tester. Cette expression peut être une variable de type texte ou numérique, donc un nombre ou une chaîne, par exemple :

<?php
  switch ($x){
    case 'Hello':
   
    break;
    case 'Bye':
   
    break;
  }
?>

Après l’expression à tester, on met des accolades. Dans celles-ci, on écrit les valeurs possibles et les actions à effectuer.

<?php
  switch ($x){
    case 'Hello': // valeur possible
      print $x;   // actions
    break; // fin de l’exécution switch
    case 2:
      $x++;
    break;
  }
?>

Chaque valeur testée est précédée de case, la valeur est entre guillemets si c’est une chaîne, sinon telle quelle si c’est un nombre. Après la valeur, on met deux points.
Ensuite, on écrit les actions à faire si le cas est vrai. À la fin de chaque case, on met break; pour terminer le switch.
Après tous les case, on peut utiliser default, qui s’exécute si aucun case ne correspond ou si on a oublié un break; et que l’exécution continue. Deux remarques :
1. N’oubliez pas de mettre break; après chaque case.
2. On peut omettre break; après default car c’est la dernière instruction.

Voici le schéma bloc de switch :

Schéma bloc switch

Pour expliquer, on calcule le reste de la division du nombre D par 7, qui correspond au nombre de jours depuis le début de la semaine, soit le jour actuel :

<?php
// $D nombre de jours depuis lundi
$x = $D % 7;
switch ($x){
  case 1:
    print 'lundi';
  break;
  case 2:
    print 'mardi';
  break;
  case 3:
    print 'mercredi';
  break;
  case 4:
    print 'jeudi';
  break;
  case 5:
    print 'vendredi';
  break;
  case 6:
    print 'samedi';
  break;
  case 7:
    print 'dimanche';
  break;
}
?>