百度
360搜索
搜狗搜索

说一下PHP字符串==比较的副作用详细介绍

   $a = '212345678912000005';

  $b = '212345678912000001';

  var_dump($a == $b);

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

  } else if (dval1 == dval2 && !zend_finite(dval1)) {

  /* Both values overflowed and have the same sign,

  * so a numeric comparison would be inaccurate */

  goto string_cmp;

  }

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

  解决方法, 使用三个等号”===”代替两个等号”==”, in_array()函数设置第三个参数为true: in_array(‘val’, $array, true)。

阅读更多 >>>  c语言scanf输入字符串,c语言输入字符串的方法有哪些?

网站数据信息

"说一下PHP字符串==比较的副作用"浏览人数已经达到30次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:说一下PHP字符串==比较的副作用的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!