本帖最后由 anyilaoliu 于 2013-12-13 15:04:43 编辑

解决方案 »

  1.   


    这一点学习了另外,今天又再次尝试了下发现我的环境下,两个string格式的18位长度的阿拉伯数字,  ==运算符比较依然会忽略后两位, 应该是内部进行了数字转换而在另一个环境下  则没有出现这个问题,两个字符串可以正确的按照字符串来使用 == 运算符求教大约是什么设置或者扩展导致这个现象的发生.
      

  2.   

    我们使用的php环境大多是32位的,而在32位环境中一个长整型数是用4个字节表示的
    即 -pow(2,31) 到 pow(2,31) 之间
    pow(2,31) = 2147483648
    pow(2,32) = 4294967296
    这显然不能满足一般的需要,所以 php 在 logn 类型的基础上做了一些扩充。用了6个字节存储1个整型数
    也就是可表示 -99999999999999 到 99999999999999 之间的正数,即 14 位整数而在64位的php中就可轻易的突破这一限制了,因为64位的环境中,一个logn类型本身就是8个字节
      

  3.   

    非常感谢xu大   解惑很到位,之前我为什么没有想到64位和32位的问题呢... 当然,这也跟我没有细看过PHP本身的代码和文档有关系