Domanda

Il primo è sicuramente qualcosa che funziona, ma quale sotto è il modo efficace?

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;
}

Poiché la stampa 1, 2 e 3 fa lo stesso, posso farlo?

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

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

o

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

    case 4:
        print 'success for type 4';
    break;
}
È stato utile?

Soluzione

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

È la strada da percorrere!

Altri suggerimenti

Il manuale di PHP elenca un esempio come il tuo terzo per 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";
}
?>

Sono d'accordo con gli altri sull'uso di:

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;
}

L'unica cosa che aggiungerei sono i commenti per le istruzioni del caso drop-line multi-linea, quindi in questo modo sai che non è un bug quando tu (o qualcun altro) guarda il codice dopo che è stato inizialmente scritto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top