【问题标题】:PHP int comparison - why add 0 to the variables first?PHP int 比较 - 为什么要先将 0 添加到变量中?
【发布时间】:2014-02-18 21:07:49
【问题描述】:

这里是简单的问题。只是想知道是否可以从这段代码 sn-p 中学到一些东西。

在一些遗留代码中发现了这个......以前从未见过它,在网上找不到任何关于它的信息,并且开发人员早已不在。

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

我的猜测是......不,实际上我没有很好地猜测为什么在比较之前将零添加到变量中。有什么想法吗?

感谢您分享您的想法。

【问题讨论】:

  • 这对我来说完全没有意义。
  • 在测试前将变量转换为整数。 PHP 是弱类型的。
  • 这是一种强制转换为整数的方法
  • 看起来行巫术,最好使用 intval()
  • 与其强制使用INT,不如直接使用!=

标签: php integer comparison


【解决方案1】:

这只是进行 int 转换的一种旧方法:

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

顺便说一句:

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

它的纯垃圾,但有效,正确的方法是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2014-08-16
    • 2017-05-10
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2010-09-27
    相关资源
    最近更新 更多