切换案例忽略php中的条件

问题描述 投票:1回答:1

我正在使用开关来测试变量的值。 变量$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;
}
php switch-statement
1个回答
7
投票

来自docs

如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串将转换为数字,并且数字执行比较。这些规则也适用于switch语句。当比较为===或!==时,不会发生类型转换,因为这涉及比较类型和值。

你在比较中放置一个字符串。

© www.soinside.com 2019 - 2024. All rights reserved.