 
$Nombre = 2;
  switch($Nombre)
    {
    case 1:
      echo "Un"; 
    case 2:
      echo "Deux"; 
    case 3:
      echo "Trois"; 
    }
Dans cet exemple le résultat sera étrangement :
  DeuxTrois
Je n'ai pas d'explication quant à ce phénomène, mais j'ai une solution :
Il est nécessaire d'inclure le mot-clé break; afin de l'informer qu'il doit s'arrêter. Le code suivant :
$Nombre = 2;
  switch($Nombre)
    {
    case 1:
      echo "Un"; 
      break; 
    case 2:
      echo "Deux"; 
      break; 
    case 3:
      echo "Trois"; 
      break; 
    }
affichera :
  Deux
Phénomène lié au break :
Dès qu'une comparaison est exécutée, le break renvoie immédiatement à la ligne d'instruction après le Switch. Exemple :
$Nombre = 5;
  switch($Nombre)
    {
    case 5 : 
      echo "Cinq";
      break;
    case 5 : 
      echo "Five";
      break;
  }
Affiche seulement :
  Cinq 
Si nombre est différent de 1,2 ou 3, on veut afficher "Nombre différent de 1, 2 ou 3" :
$Nombre = 5;
  switch($Nombre)
    {
    case 1:
      echo "Un"; 
      break; 
    case 2:
      echo "Deux"; 
      break; 
    case 3:
      echo "Trois"; 
      break; 
    default:
      echo "Nombre différent de 1, 2 ou 3";
      break;
  }
Il faut savoir que l'écriture
$Nombre = 1;
  switch($Nombre)
    {
    case 1:
      echo "Un"; 
      break; 
    } 
N'est que la contraction de l'écriture :
$Nombre = 1;
  switch($Nombre)
    {
    case $Nombre == 1:
      echo "Un"; 
      break; 
    } 
Quand on a compris ça, la gestion des plages de valeurs coule de source. L'exemple suivant affiche :
$Nombre = 32;
  switch ($Nombre)
    {
    case ($Nombre < 10) : 
      echo "petit";
      break;
    case (($Nombre >= 10) && ($Nombre <= 50)) : 
      echo "Moyen";
      break;
    case ($Nombre > 50) : // ou default, c'est pareil
      echo "Grand";
      break; // dernier break facultatif par sa nature même
    }
-