php中忽略条件的开关大小写

php中忽略条件的开关大小写,php,switch-statement,Php,Switch Statement,我使用开关来测试变量的值。 变量$sizeTotal可以包含字符串或数字。在下面的示例中,我希望开关触发默认情况。 然而,每次都是第一个案例,我不知道为什么 $sizeTotal=测试; $extraCharges['2']=1000; 切换$sizeTotal{ 案例$sizeTotal=$extraCharges['2']: $var=60; 返回$var; 违约: $var=1000; 返回$var; } 从 如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,

我使用开关来测试变量的值。 变量$sizeTotal可以包含字符串或数字。在下面的示例中,我希望开关触发默认情况。 然而,每次都是第一个案例,我不知道为什么

$sizeTotal=测试; $extraCharges['2']=1000; 切换$sizeTotal{ 案例$sizeTotal<$extraCharges['2']: $var=40; 返回$var; 案例$sizeTotal>=$extraCharges['2']: $var=60; 返回$var; 违约: $var=1000; 返回$var; } 从

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

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

来自

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


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

您错误地使用了switch语句,它用于检查变量的单个值,而不是条件。您可能希望使用能够检查条件的else if构造。字符串已转换为0,且0小于1000。这就是为什么您的第一个条件为true。您使用的switch语句是错误的,它是用于检查变量的单个值,而不是条件。您可能希望使用能够检查条件的else if构造。字符串已转换为0,且0小于1000。这就是为什么你的第一个条件是正确的。