我创建了一个switch语句但是一切似乎都陷入了默认状态。如果我以if / else格式重写它,它可以正常工作。谁能解释为什么会这样?谢谢!
不起作用:
switch(delta){
case (delta<10):
xsmall++;
break;
case (delta>= 10 && delta< 50):
small++;
break;
case (delta>= 50 && delta<250):
med++;
break;
case (delta>= 250 && delta<1000):
large++;
break;
case (delta>= 1000):
xlarge++;
break;
default:
unknown++;
}
成功运作:
if(delta<10)
xsmall++;
else if(delta>= 10 && delta < 50)
small++;
else if(delta >= 50 && delta < 250)
med++;
else if(delta >= 250 && delta <1000)
large++;
else if(delta >= 1000)
xlarge++;
else
unknown++;
答案 0 :(得分:1)
这将有效:
$def->setMethodCalls(array(array($factoryReference,'getIndex')));
原因:您需要将boolean传递给switch语句,因为所有情况都将返回布尔值而不是数字