2014-02-27 9 views
28

Kann mir jemand vorschlagen, wie kann ich den Code unten Wie neu zu schreiben den Code ersetzen, um die repeatation des Blocks case 3:{code block A; break;}PHP - Schalten Sie mehrere case-Anweisung

`

switch(i){ 
    case 1:{code block A; break;} 
    case 2:{code block b; break;} 
    case 3:{code block A; break;} 
    default: {code block default; break;} 
} 

`

zu vermeiden

Wie für den Fall 1 & Fall 3 kombiniert Code haben

Antwort

82
switch (i) { 
    case 1: 
    case 3: 
     code block A; 
     break; 
    case 2: 
     code block B; 
     break; 
    default: 
     code block default; 
     break; 
} 
+0

Das funktionierte gut, Dank ..ist dieses Format eines Standard eines ?? –

+1

Da das PHP-Dokument dieses Format erwähnt, denke ich es ist: http://www.php.net/manual/en/control-structures.switch.php –

+1

Ja, das ist ein Standardmuster in fast allen Sprachen, die 'unterstützt Schalter - Fall'. Es wird als "Fall-through" bezeichnet, wenn Sie durch einen Fall in den nächsten fallen. Deshalb hast du die Anrufe, um dort zu "brechen", um zu verhindern, dass es dort hinfällt, wo du es nicht willst. – ChristianF

6

So etwas wie dies

switch(i){ 
    case 1: 
    case 3:{code block A; break;} 
    case 2:{code block b; break;} 
    default: {code block default; break;} 
}