在开发PHP应用程序时,我遇到了这个奇怪的怪癖。
显然,字符串'01' == '1'
,'05' == '5'
,'03111' == '3111'
。
我试过了 -
php > $numbers = ["1", "2", "3", "4", "5"];
php > in_array("01", $numbers);
true
php > var_dump("01" == "1");
true
php > var_dump("00003333" == "3333")
true
如何防止这种情况(即in_array
调用返回false),为什么它首先发生?
答案 0 :(得分:0)
您应该在in_array
中使用严格比较in_array("01", $numbers, true);
和===而不是== 然后php比较类型