微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理PHP中大于16位的值?

我正在使用SOAPclient调用一个方法,并且该方法(远程外部SOAP Web服务)返回一个19位数字.我无法控制返回的内容.当我打印此数字的值时,只有前16位数字是准确的.
我已经尝试了类型转换,GMP等.但是当PHP根据Web服务调用的结果将值赋给变量时,看起来已经丢失了完整的19位数字.所以无法检索该值.

$client = new SoapClient($sccSystemWSDL);
try{
    $sessionID = $client->logonUser($adminUser,$passWord);
}

在64位机器上我没有这个问题.但现在我必须在32位机器上运行它,直到现在都没有运气.

解决方法:

使用BCMath它允许将数字作为字符串而不是整数处理,因此没有大小限制.你也应该将precision指令增加到更大的数字,比如20左右.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐