IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Passage de valeurs d'objet à un array.


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut [POO] Passage de valeurs d'objet à un array.
    Salut à tous, question sans doute con

    Comment fait-on pour passer la valeur d'un objet dans un array ?

    J'ai ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $xml = simplexml_load_file('./fichier.xml');
     
    foreach ($xml->bloc as $bloc)
      $tableau[$bloc->id] = $bloc->nom;

    Donc illegal offset, normal, je suppose qu'il faut utiliser serialize, ce que j'ai fait, mais si je désire accéder à l'élément 1 du tableau dans mon code, comment je fait ?
    $tableau[1] m'indique indéfini offset, ce qui est logique.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    J'ai trouvé la solution, c'est de forcer de type, mais j'ai pas compris pourquoi il fallait le faire...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $xml = simplexml_load_file('./fichier.xml');
     
    foreach ($xml->bloc as $bloc)
    {
      $index = (int)$bloc->id;
      $tableau[$index] = (string)$bloc->nom;
    }

    Merci.

  3. #3
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Pour ce que j'en sais (mais c'est éventuellement soumis a caution) $bloc->id; te renvoie un objet simpleXML. (Tu dois pouvoir le voir si tu fait un export_var de ton $bloc->id, tu n'a normalement pas un nombre directement, mais un nombre inclus dans un tableau il me semble... a vérifier).
    Du coup, quand tu teste ton tableau avec la clef '1', il ne trouve pas, puisqu'il a un tableau avec la clef '$bloc->id'.
    Le cast te transforme ton format "bizarre" en format classique, et c'est pour ca qu'après ca marche.

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    J'ai testé un var_export comme tu as dit, mais ça n'indique pas grand chose.

    Pour $bloc->id
    SimpleXMLElement::__set_state(array( ))

    Et pour $xml->bloc
    SimpleXMLElement::__set_state(array( 'id' => '0', 'nom' => 'valeur', ))


  5. #5
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Pour $bloc->id
    SimpleXMLElement::__set_state(array( ))
    C'est ce que je dis, le contenu est de type SimpleXMLElement, c'est pour ca que tu as besoin d'un cast, ca n'est pas directement un int.

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Ah ok, j'ai jamais trop utiliser cette fonction, donc je ne sais pas trop interprèter le résultat.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Passage par valeur d'un objet Corba
    Par peaceinpal dans le forum CORBA
    Réponses: 1
    Dernier message: 29/05/2006, 20h15
  2. [POO] Passage d'objet
    Par kyript dans le forum Langage
    Réponses: 10
    Dernier message: 16/05/2006, 19h42
  3. [POO] Passage d’objet en références
    Par remyli dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 12h19
  4. [POO] Passage d'objet dans un formaulaire
    Par jiluc dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 16h07
  5. [POO] passage nom objet dsn les parametres d'une fonction
    Par melou dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/10/2005, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo