我正在使用SOAPclient调用一个方法,并且该方法(远程外部SOAP Web服务)返回一个19位数字.我无法控制返回的内容.当我打印此数字的值时,只有前16位数字是准确的.
我已经尝试了类型转换,GMP等.但是当PHP根据Web服务调用的结果将值赋给变量时,看起来已经丢失了完整的19位数字.所以无法检索该值.
$client = new SoapClient($sccSystemWSDL);
try{
$sessionID = $client->logonUser($adminUser,$passWord);
}
在64位机器上我没有这个问题.但现在我必须在32位机器上运行它,直到现在都没有运气.
解决方法:
使用BCMath它允许将数字作为字符串而不是整数处理,因此没有大小限制.你也应该将precision指令增加到更大的数字,比如20左右.