PREAMBLE:$ state可以有3个可能的值:
0
(零,整数)'Set Level: 10 %'
(字符串)'Set Level: 20 %'
(字符串)我有一个不能返回正确值的开关代码。
这是代码:
<?php
$state = 0;
switch ($state) {
case 'Set Level: 10 %':
$return = 1;
break;
case 'Set Level: 20 %':
$return = 2;
break;
default:
$return = 0;
break;
}
echo 'return:';
var_dump($return);
这就是小提琴:https://3v4l.org/IQ142
使用$state = 0
,默认情况下会返回1
而非0
。我也尝试删除默认值并强加案例0:但没有变化。
谢谢
注意:$state
也可以是字符串。为此,我需要检查字符串。
答案 0 :(得分:5)
您无法将int与字符串进行比较。在将switch
发送到{{1}}之前,请转换为字符串。这将为您提供正确的结果。
$state = 0; switch((string)$state) ...