Page 1 sur 1

var_dump et retour d'une fonction

Posté : 18 févr. 2014, 12:39
par albator13
Bonjour,

gros débutant qui a du mal à s'y mettre recherche aide éclairé :D

Une fonction me retourne un objet. var_dump me permet de lire la structure de cet objet.
$tableau = $clientSOAP->f_lire_utilisateurs();
echo var_dump($tableau);
Cool. Très content, j'obtiens ceci :
object(stdClass)#2 (1) { ["val"]=> array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) } } 
Maintenant, j'aimerais franchir l'étape suivante : afficher à l'écran une des valeurs contenues dans le tableau-objet. Du genre :
echo quelque chose
Mais j'avoue avoir un peu de mal à trouver / comprendre l'info. Qui maidera ?

Merci d'avance

Re: var_dump et retour d'une fonction

Posté : 18 févr. 2014, 13:06
par yann18
bonjour,

$tableau->["val"] est un tableau, tu peux récupérer chacun de ses éléments:
$tableau = $clientSOAP->f_lire_utilisateurs();

$tableau->["val"][0];//1
$tableau->["val"][1];//2

Re: var_dump et retour d'une fonction

Posté : 18 févr. 2014, 13:15
par sirakawa
Remplace :
$tableau = $clientSOAP->f_lire_utilisateurs();
echo var_dump($tableau);
par
$tableau = $clientSOAP->f_lire_utilisateurs();
print_r($tableau);
et tu obtiens un résultat du genre
Array ( [0] => mon chat [valeur] => 12 [texte] => dieu sait quoi )
dont tu utilises les éléments ainsi:
$animal = $tableau[0];
$valeur = $tableau['valeur'];
$priere = $tableau['texte'];

Re: var_dump et retour d'une fonction

Posté : 18 févr. 2014, 14:16
par xTG
Mes bons amis c'est pas top de poster rapido avant d'aller manger. =D>
object(stdClass)#2 (1) { ["val"]=> array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) } }
donc :
$tableau = $clientSOAP->f_lire_utilisateurs();
echo $tableau->val[0]; // 1
echo $tableau->val[1]; // 2

Re: [RESOLU] var_dump et retour d'une fonction

Posté : 18 févr. 2014, 16:42
par albator13
Merci pour vos réponses. Pour une raison mystérieuse (pastis, yeux fermés... ?), les solutions proposées retournaient une erreur.
J'ai tenté ceci, par exemple :
echo $utilisateurs->val[3] . "<br>";
... et la Seigneur me remercie de ma patience.

Plus dur, encore. Ma fonction SOAP retourne un... "truc" (pardonnez ma grossièreté, j'ai encore un peu de mal avec les types en php) que je passe à la moulinette de la fonction print_r.
echo '<pre>'.print_r($utilisateurs, true).'</pre>';
L'écran affiche ceci :
stdClass Object
(
    [struc_utilisateur] => Array
        (
            [0] => stdClass Object
                (
                    [str_nom_utilisateur] => AMANDINE 
                    [id_utilisateur] => 18
                )

            [1] => stdClass Object
                (
                    [str_nom_utilisateur] => AURELIA 
                    [id_utilisateur] => 6
                )

            [2] => stdClass Object
                (
                    [str_nom_utilisateur] => MELISSA 
                    [id_utilisateur] => 538
                )
        )
)
Sur le coup, une boule d'angoisse remonte dans ma gorge, m'empêche de réfléchir, puis de respirer. Je vomis. En reprenant vos exemples (et en m'essuyant les lèvres), j'écris ceci :
echo $utilisateurs->struc_utilisateur[1]->str_nom_utilisateur;
Et là, miracle, je commence à comprendre, car je peux lire sur mon écran :
AURELIA 
MERCI AURELIA POUR TOUTES LES BONNES CHOSES QUE JE TE DOIS...