我正在尝试使用 SoapClient 函数将 PHP 数组解析为 SOAP XML。 我必须将十进制数解析为 SOAP。我的 PHP 数组看起来像这样:
$contactparams = array(
"DECIMALVARIABLE"=>0.00
);
在执行 SOAP 调用时,我收到错误提示,我应该使用带 2 位小数的十进制数。我猜 PHP 函数将 0.00 转换为纯 0。
抛出的错误示例:
Fatal error: Uncaught SoapFault exception: [soap:Client] Invalid number 2dp value (0)
当我使用 0.01 时,它工作得很好。
我已经尝试将其解析为字符串 "0.00"& 0.00.""
我也尝试过使用 number_format 函数来创建 0.00,但结果相同。
任何解决这个谜语的想法都将不胜感激。
最佳答案
经过几个小时的寻找解决方案,我终于找到了一个狡猾的解决方案......
当输入值 0.001 时,SOAP 的函数会将其更改为正确的值 0.00
所以:
$contactparams = array(
"DECIMALVARIABLE"=>0.001
);
给予:
DECIMALVALUE=0.00
不是一个干净的解决方案,但可以工作..
关于PHP 5.6 SoapClient 传递十进制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36977763/