我有一个白痴问题,但我被困住了.
这是我的简单代码
$my_string = '00'; switch ((string)$my_string) { case '-1': $return_string = 'bla bla..'; break; case '0': $return_string = 'One zero'; break; case '00': $return_string = 'Double zero'; break; default: $return_string = 'default'; break; } echo $return_string;
返回前代码的结果
One Zero
有什么建议 ?
解决方法
好,
这基本上是因为PHP不是强类型语言.
所以“00”==“0”给出为真(并且因为所述开关使用相等运算符)
这基本上是因为PHP不是强类型语言.
所以“00”==“0”给出为真(并且因为所述开关使用相等运算符)
您可以将此更改为if else语句,使用三等于并且可以执行此操作.
“00”===“0”给出错误.查看此主题以获取更多详细信息How do the PHP equality (== double equals) and identity (=== triple equals) comparison operators differ?