这是最近开始发生的奇怪事情。PHP转换(整数)返回字符串
function someFunction() {
return 0;
}
if (someFunction() == 0)
runCode();
elseif (someFunction() == '0')
runOtherCode();
在这种情况下runCode()不会被调用,而是runOtherCode()将被调用。为什么会发生这种情况?
编辑:使用===在某些情况下修复了此错误。但是另一次出现这个问题的时候是从数据库返回整数结果。出于某种原因,将整数转换为字符串,但在返回数据之前向数据添加(int)可修复该错误。
即使“someFunction”的结果被转换为字符串,这也没有关系。您正在使用不检查类型的'=='进行比较,因此'0'== 0'的计算结果为true(''0'=== 0'但是不是)。 – fstanis 2014-09-27 00:04:03
为了让我们更有帮助,可以在这里发布你的实际代码。当然,除非这是你的实际代码。 – Bono 2014-09-27 00:04:15
别的地方有点不对劲,查看这个demo http://3v4l.org/tsDPj – 2014-09-27 00:12:31