虽然我理解比较数字字符串,转换和其他东西的区别和可能性,昨天发生的事情,因为我无法读取C代码我没有深入研究PHP源文件,似乎没有记录在案。
情况是,使用PHP 5.3.27:
使用16字节的数字字符串:
var_dump("1111111111111111" != "1111111111111112") === true
使用17字节的数字字符串,我刚刚在beggining:
添加了另一个1var_dump("11111111111111111" != "11111111111111112"); === false
但改变了最后一个角色:
var_dump("11111111111111111" != "11111111111111114"); === true
为什么呢? 16和17字节字符串会发生什么?