我使用SOAP从其他服务获取一些数据,我获取XML并转换并使用PHP显示它。事情有时在XML文件中没有它的价值,我不知道如何显示一些消息,如“这件事没有设置”,而不是我刚刚注意到 注意:第636行的\ data2.php中的数组到字符串转换 阵列
我尝试了什么:
if(isset($claim ['vehicle']['engine-cc']))
echo var_dump($claim ['vehicle']['engine-cc']);
输出:array(0){}
之后我尝试了类似的事情:
if(isset($claim ['vehicle']['engine-cc']))
echo var_dump(isset($claim ['vehicle']['engine-cc']));
输出:bool(true)
所以看起来我做的事情很糟糕,你能给我一些建议吗我该如何解决呢?
P.S。我知道我可以停止显示错误和通知,但这不是我想要“修复”它的方式
答案 0 :(得分:1)
echo
已经var_dump
已用var_dump
(用于打印数组),或者您可能没有$claim ['vehicle']['engine-cc']
数组{@ 1}}串
var_dump($claim ['vehicle']['engine-cc']); // for array
echo $claim ['vehicle']['engine-cc'] // for string
返回bool(true)因为你有isset()
(将返回布尔值true / false)
var_dump(isset($claim ['vehicle']['engine-cc']));
要打印数组值,您只需: -
var_dump($claim ['vehicle']['engine-cc']); or var_dump($claim);
将返回完整的数组输出
对于任何检查空值,请尝试
if(!empty($claim ['vehicle']['engine-cc']))
var_dump($claim ['vehicle']['engine-cc']);
答案 1 :(得分:0)
您可以通过回复消息来实现。
`if(!isset($ claim [' vehicle'] [' engine-cc']))
echo' engine-cc - 这个东西没有设置&#39 ;;`
答案 2 :(得分:0)
您需要使用选项" SOAP_SINGLE_ELEMENT_ARRAYS"最有可能的。 默认情况下,SOAP将SOAP属性的空值或单个值作为字符串返回,而不是数组。将选项SOAP_SINGLE_ELEMENT_ARRAYS添加到SOAP客户端请求将强制将值作为空ARRAY而不是空字符串返回。请参阅example here。