[RESOLU] var_dump et retour d'une fonction

Petit nouveau ! | 3 Messages

18 févr. 2014, 12:39

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

Mammouth du PHP | 571 Messages

18 févr. 2014, 13:06

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

Mammouth du PHP | 2278 Messages

18 févr. 2014, 13:15

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'];
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
xTG
ViPHP | 7331 Messages

18 févr. 2014, 14:16

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

Petit nouveau ! | 3 Messages

18 févr. 2014, 16:42

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...