2008-10-23 13 views
1

Le premier est définitivement quelque chose qui fonctionne, mais lequel est ci-dessous est le moyen efficace?Puis-je avoir plusieurs cas qui font la même chose?

switch($type) { 
    case 1: 
     print 'success'; 
    break; 

    case 2: 
     print 'success'; 
    break; 

    case 3: 
     print 'success'; 
    break; 

    case 4: 
     print 'success for type 4'; 
    break; 
} 

Comme les impressions 1, 2 et 3 font de même, puis-je faire cela?

switch($type) { 
    case 1, 2, 3: 
     print 'success'; 
    break; 

    case 4: 
     print 'success for type 4'; 
    break; 
} 

ou

switch($type) { 
    case 1: 
    case 2: 
    case 3: 
     print 'success'; 
    break; 

    case 4: 
     print 'success for type 4'; 
    break; 
} 

Répondre

17
switch($type) 
{ 
    case 1: 
    case 2: 
    case 3: 
     print 'success'; 
    break; 
    case 4: 
     print 'success for type 4'; 
    break; 
} 

Est-ce le chemin à parcourir!

3

manuel PHP énumère un exemple comme votre 3ème pour switch:

<?php 
switch ($i) { 
case 0: 
case 1: 
case 2: 
    echo "i is less than 3 but not negative"; 
    break; 
case 3: 
    echo "i is 3"; 
} 
?> 
2

Je suis d'accord avec les autres sur l'utilisation de:

switch ($i) { 
    case 0: //drop 
    case 1: //drop 
    case 2: //drop 
     echo "i is 0, 1, or 2"; 
    break; 
    // or you can line them up like this. 
    case 3: case 4: case 5: 
     echo "i is 3, 4 or 5"; 
    break; 
} 

La seule chose que je voudrais ajouter est les commentaires pour la Les instructions multi-lignes passent par des requêtes, de sorte que vous sachiez que ce n'est pas un bogue lorsque vous (ou quelqu'un d'autre) examinez le code après son écriture initiale.