单个开关情况下的多重条件


mutliple conditions on single switch case

可能重复:
如何使用开关盒';或者';在PHP中?

是否可能在单个开关情况下具有多个条件,例如

switch($device) {
  case 'blackberry':
  break;
  case 'iphone' || 'ipod' || 'android':
  break;
}

谢谢你的帮助。

switch($device) {
  case 'blackberry':
  break;
  case 'iphone':
  case 'ipod':
  case 'android':
  do_something();
  break;
}

根据下面的评论,我将详细阐述一下。

break语句中断switch语句的执行并退出。所以,如果你有

case "iphone":
do_iphone();
case "ipod": 
do_ipod();
break;

(注意两个箱子之间缺少的空隙)。两者都是do_iphone();和do_ipod();将执行(按顺序)。所以,基本上,我们正在做的是一个"破解",引擎进入案例iphone,执行(在我们的原始案例中没有执行的内容),然后前进到ipod等等。

如果没有您建议的语法,您必须创建多个指向同一操作的案例,例如:

switch($device) {
  case 'blackberry':
    blackberryFunction();
    break;
  case 'iphone':
  case 'ipod':
  case 'android':
    nonBlackberry();
    break;
}
switch($device) {
  case 'blackberry':
  break;
  case 'iphone':
  case 'ipod':
  case 'android':
      //handle all three here
  break;
}

是的,只需在一个案例下使用多个案例语句即可-

switch($device){
    case 'blackberry':
    //implementation
    break;
    case 'iphone':
    case 'ipod':
    case 'android':
    //implementation
    break;
}

只需"堆叠"case语句就足够了:

switch($device) {
    case 'blackberry':
        break;
    case 'iphone':
    case 'ipod':
    case 'android':
      break;
}