有个问题求大神解释 PHP Version 5.3.10 结果是true 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $result = in_array($a, $b, true); $a = '9900000020000004';$b = array('2809083640000001','9900000020000002','9900000020000003');在PHP里当两个数字型字符串(只含数字的字符串)进行比较的时候是直接转换成数值进行比较的。因$a 与 $b内元素都可以转换为数字,因此php会对字符串转成数字再进行比较,因为整型范围会溢出,因此会转换成浮点型(float)var_dump(9900000020000004);var_dump(9900000020000002);var_dump(9900000020000003);9900000020000004 与 9900000020000002,9900000020000003 的浮点数相同,都是float(9.90000002E+15)因此in_array返回true。如果不想php转换类型比较,用in_array($a, $b, true);可解决此问题。 #10 var_dump(9900000020000004);var_dump(9900000020000002);var_dump(9900000020000003); 这三个打印出来的确实都是:float(9.90000002E+15)但是我打印$a = '9900000020000004';$b = array('2809083640000001','9900000020000002','9900000020000003');$result = in_array($a, $b);var_dump($result); 结果是 bool(false); php 5.4测试。 无法获取超链接 这个网站是用php的什么技术做的 中信银行支付接口 请教,php怎么打印出从服务器返回的原始json? 请问linux 环境php怎么绑定gd php能调用C#的exe程序吗,,如果能,怎么在网页中显示出来呢 zend framework框架中一个关于action的问题 请教大家一个关于php错误提示的问题?? NT盲人提问:在NT上重装PHP的问题????!!! 怎么实现如CSDN这样的分页? php上传文件-断点续传 跪求 textarea输出结果 IE浏览器下复制出来不换行
$b = array('2809083640000001','9900000020000002','9900000020000003');在PHP里当两个数字型字符串(只含数字的字符串)进行比较的时候是直接转换成数值进行比较的。
因$a 与 $b内元素都可以转换为数字,因此php会对字符串转成数字再进行比较,因为整型范围会溢出,因此会转换成浮点型(float)var_dump(9900000020000004);
var_dump(9900000020000002);
var_dump(9900000020000003);
9900000020000004 与 9900000020000002,9900000020000003 的浮点数相同,都是float(9.90000002E+15)
因此in_array返回true。如果不想php转换类型比较,用in_array($a, $b, true);可解决此问题。
var_dump(9900000020000002);
var_dump(9900000020000003); 这三个打印出来的确实都是:float(9.90000002E+15)
但是我打印$a = '9900000020000004';
$b = array('2809083640000001','9900000020000002','9900000020000003');
$result = in_array($a, $b);
var_dump($result); 结果是 bool(false); php 5.4测试。