Posso avere più casi che fanno la stessa cosa?
-
04-07-2019 - |
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;
}
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