传递给switch语句的值基本上是switch语句查找评估匹配的值,从案例列表的顶部到底部向下,直到它找到一个等于(松散比较)的情况,例如, true == true.
在您的示例中,您的comparisons被评估为布尔值(true或false) – 您的变量$value设置为零,等于false,但不等于(严格比较)为false.例如:
(0 == false) // true
(0 === false) // false
(1 == false) // false
(1 === false) // false
(1 == true) // true
(1 === true) // false
(true === true) // true
因此,通过使用布尔值true作为切换值,可以在语句内部进行数值比较,其中每个比较将评估为true或false以匹配/不匹配原始true值(布尔值 – 布尔值比较).
switch(true) {
case ($value <= 25): // true
$CompScore = 'low';
break;
case ($value > 25 && $value <= 50 ): // false
$CompScore = 'fair';
break;
case ($value > 50 && $value <= 75 ): // false
$CompScore = 'good';
break;
case ($value >75 ): // false
$CompScore = 'excellent';
break;
default: // if you removed the first case
$CompScore = 'low'; // this default case would be used
break;
}