【发布时间】:2014-03-06 03:52:49
【问题描述】:
这是我的代码。
$value = 0;
switch($value) {
case ( $value <= 25 ):
$CompScore = 'low';
break;
case ($value > 25 && $value <= 50 ):
$CompScore = 'fair';
break;
case ($value > 50 && $value <= 75 ):
$CompScore = 'good';
break;
case ($value >75 ):
$CompScore = 'excellent';
break;
default:
$CompScore = 'low';
break;
}
echo $CompScore;
当值为0时,$compScore为fair。为什么它没有显示low?我不明白为什么。
【问题讨论】:
-
这不是开关块的使用方式。使用开关的原因是评估 $value ONCE 然后检查合格的案例值。因为您正在对
$value执行单独的评估,所以您可以使用if-elseif-else块更简洁地编写同样高效的代码。最好的方法是将isset()与查找数组一起使用,并在输入不属于预期组之一时分配默认值。 (正如我的回答所证明的)
标签: php