PHP整数比较 - 为什么先将变量加0?

3

这里是一个简单的问题。只是想知道这段代码片段是否有值得学习的地方。

我在一些旧代码中发现了它,以前从未见过,并且在网上也找不到任何信息,开发人员已经离开了。

if ($row['cnt']+0 !== $count+0) {
   // log warnings etc
}

我猜想...实际上我不知道为什么在比较变量之前会添加零。你有什么想法吗?

感谢分享你的想法。


这对我来说完全没有意义。 - snollygolly
在测试之前,它将变量转换为整数。PHP是弱类型的。 - SeraM
这是一种将强制转换为整数的方法。 - Mark Baker
1
为什么强制使用 INT,不直接使用 != 呢? - AbraCadaver
@MarkBaker 你是对的...我真正的意思是'3'+0 === 3+0得到了预期的结果,但是'abc'+0 === 3+0却不是。 - billrichards
显示剩余3条评论
1个回答

2

这只是一种旧的整数转换方法:

php > var_dump('112'+0);
int(112)

顺便说一句:

php > echo ("0012"+0 === "12"+0 )? "yay!" : "booh!";
yay!

虽然这个方法很烂,但依然可用,正确的做法应该是这样的:

php > var_dump((int)"324");
int(324)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接