html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

PHP字符串==比较的副作用_PHP教程_编程技术

[ ] 已经帮助:人解决问题

  $a = '212345678912000005';AeRHTML5中文学习网 - HTML5先行者学习网

  $b = '212345678912000001';AeRHTML5中文学习网 - HTML5先行者学习网

  var_dump($a == $b);AeRHTML5中文学习网 - HTML5先行者学习网

  这段代码的输出是bool(true), 说明这样判断会得出结论是两者相等. 类似的特性在in_array()函数第3个参数为false或者不设置的情况. 原因是首先判断字符串是否是数字, 然后转换成long或者double(C语言数据类型)再判断 – 使用zendi_smart_strcmp. 但是, 源码中的注释说声明考虑了溢出的情况,AeRHTML5中文学习网 - HTML5先行者学习网

  } else if (dval1 == dval2 && !zend_finite(dval1)) {AeRHTML5中文学习网 - HTML5先行者学习网

  /* Both values overflowed and have the same sign,AeRHTML5中文学习网 - HTML5先行者学习网

  * so a numeric comparison would be inaccurate */AeRHTML5中文学习网 - HTML5先行者学习网

  goto string_cmp;AeRHTML5中文学习网 - HTML5先行者学习网

  }AeRHTML5中文学习网 - HTML5先行者学习网

  dval1和dval2分别是两个字符串转换为double型后的值. 但为什么还是这样呢? 也许这个判断并不正确. 进一步研究再说…AeRHTML5中文学习网 - HTML5先行者学习网

  解决方法, 使用三个等号”===”代替两个等号”==”, in_array()函数设置第三个参数为true: in_array(‘val’, $array, true).AeRHTML5中文学习网 - HTML5先行者学习网

AeRHTML5中文学习网 - HTML5先行者学习网
AeRHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助