PHP Connexion aux données de retour du service de WCF
Question
J'ai un problème pour analyser les données renvoyées par mon service Web WCF.
Le service Web repasse un tableau de chaînes, ces données sont placées dans un objet STDCLASC, le problème que je rencontre est que les données changent selon qu'il y a 1 ou plusieurs objets.
Ne jamais traité avec des objets STDCLASS, je ne suis pas vraiment sûr de quoi faire.
Ce qui suit est le code que je suis en train d'utiliser, $ conteneurs est la valeur de retour de l'appel de service Web.
<ul>
<?php var_dump($containers)?>
<?php foreach($containers as $item):?>
<li>
<?php
echo $item->string;
?>
</li>
<?php endforeach;?>
</ul>
S'il n'y a que 1 Valeur étant renvoyée, le code suivant fonctionne bien et affiche le nom du conteneur renvoyé. S'il y a plus d'une valeur retournée $ article-> String devient une matrice.Y a-t-il de toute façon pour déterminer quelles valeurs contiennent STDCLASS?
var_dump avec juste 1 conteneur
object(stdClass)[13]
public 'GetContainersResult' =>
object(stdClass)[14]
public 'string' => string 'container1' (length=10)
var_dump avec plus d'un conteneur
object(stdClass)[13]
public 'GetContainersResult' =>
object(stdClass)[14]
public 'string' =>
array
0 => string 'container1' (length=10)
1 => string 'container2' (length=10)
Merci d'avance,
mat
La solution
you can use is_array($item->string)
to check if you have an array and then process it appropriately. Based on your code, I think something like this might work for you.
<?php var_dump($containers)?>
<ul>
<?php foreach($containers as $item):
if(is_array($item->string)):
foreach($item->string as $subitem):
<li class="subitem"><?php echo $subitem; ?></li>
<?php
endforeach;
else: ?>
<li><?php echo $item->string; ?></li>
<?php
endif;
endforeach;
?>
</ul>