我在解析 WCF Web 服务返回的数据时遇到问题。
Web 服务正在传回一个字符串数组,该数据被放入一个 StdClass 对象,我遇到的问题是数据会根据是否存在 1 个或多个对象而变化。
从未处理过 stdclass 对象,我不确定该怎么做。
以下是我目前正在使用的代码,$containers 是 Web 服务调用的返回值。
<ul>
<?php var_dump($containers)?>
<?php foreach($containers as $item):?>
<li>
<?php
echo $item->string;
?>
</li>
<?php endforeach;?>
</ul>
如果只返回 1 个值,则以下代码可以正常工作并显示返回的容器名称。如果返回的值超过 1 个,则 $item->string 变为 Array。无论如何确定 stdclass 包含哪些值?
var_dump 只有 1 个容器
object(stdClass)[13]
public 'GetContainersResult' =>
object(stdClass)[14]
public 'string' => string 'container1' (length=10)
具有超过 1 个容器的 var_dump
object(stdClass)[13]
public 'GetContainersResult' =>
object(stdClass)[14]
public 'string' =>
array
0 => string 'container1' (length=10)
1 => string 'container2' (length=10)
提前致谢,
马特