我正在使用开关来测试变量的值。
变量$sizeTotal
可以包含字符串或数字。在下面的例子中,我期望开关触发默认情况。
但是,它每次都是第一个案例,我不知道为什么......
$sizeTotal = "test";
$extraCharges['2'] = 1000;
switch ($sizeTotal) {
case ($sizeTotal < $extraCharges['2']):
$var = 40;
return $var;
case ($sizeTotal >= $extraCharges['2']):
$var = 60;
return $var;
default:
$var = 1000;
return $var;
}
来自docs
如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串将转换为数字,并且数字执行比较。这些规则也适用于switch语句。当比较为===或!==时,不会发生类型转换,因为这涉及比较类型和值。
你在比较中放置一个字符串。