如果变量不包含值,则不显示变量(PHP |

时间:2014-09-29 08:50:24

标签: php soap

我使用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。我知道我可以停止显示错误和通知,但这不是我想要“修复”它的方式

3 个答案:

答案 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