php 中文字符串的比较,使用==比较PHP中的不同字符串将返回true

我只是在调试脚本,发现if语句没有按照我的预期运行.

var_dump("6064365413078728979" == "6064365413078728452");

die();

上面的代码将导致以下结果:

bool(true)

使用===运算符,它按预期工作.有人有任何想法吗?

我正在使用PHP版本5.3.13和x64 windows机器上的wamp安装.

解决方法:

$a=6064365413078728979;

$b=6064365413078728452;

echo $a."
".$b;

//var_dump( $a==$b );

die();

?>

运行时,然后在您的机器上可能超出数字限制,这是一个数字比较发生.尝试上面的脚本,看看$a的值可能与你给出的值不同.

这就是为什么当两者在数字上进行比较时它们是相等的.因此,如其他人所建议的那样使用===

编辑:基于@ Axel建议的解释.

The size of a float is platform-dependent, although a maximum of

~1.8e308 with a precision of roughly 14 decimal digits is a common

value (the 64 bit IEEE format).

this website提供和解释溢出现象和一个小的PHP代码来测试你的系统的整数和浮点范围.了解服务器的限制最有可能解释为什么会出现优惠流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值