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 :

Accès à la valeur d'un tableau d'un objet via une variable


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut Accès à la valeur d'un tableau d'un objet via une variable
    Salut tout le monde !

    Une question sans doute un peu triviale pour certains mais qui me laisse assez perplexe.

    J'expose la situation. J'ai un fichier XML que j'utilise via simplexml et qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="iso-8859-1"?>
    <liste>
    	<objet>
    		<name>Objet 1</name>
    		<file>test_objet1.txt</file>
    	</objet>
    	<objet>
    		<name>Objet 2</name>
    		<file>test_objet2.txt</file>
    	</objet>
    	<objet>
    		<name>Objet 3</name>
    		<file>test_objet3.txt</file>
    	</objet>
    </liste>
    Du coté du PHP, je cherche à obtenir la valeur du champ "name" de l'objet dont le numéro est passé en argument au script via l'adresse (donc en get) de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml->objet[$_GET['num']]->name
    Mais ça ne fonctionne pas.

    Je suis assez étonné, puisque avec une valeur numérique, ça passe.
    J'ai donc tenté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $pouet = array (1,2,3,4);
    $acces = 2;
     
    echo "Avec acces : ".$pouet[$acces];
    // Affiche 3
     
    echo "Avec GET : ".$pouet[$_GET['num']];
    // Affiche 3 également
    // Avec come argument adresse : ?num=2
    Et là il y a un comportement normal.

    Du côté simplexml j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $xml = simplexml_load_file("objets.xml");
    Qui me donne mon objet $xml suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     echo var_dump($xml);
     
    object(SimpleXMLElement)#1 (1) {
      ["objet"]=>
      array(3) {
        [0]=>
        object(SimpleXMLElement)#4 (2) {
          ["name"]=>
          string(7) "Objet 1"
          ["file"]=>
          string(15) "test_objet1.txt"
        }
        [1]=>
        object(SimpleXMLElement)#3 (2) {
          ["name"]=>
          string(7) "Objet 2"
          ["file"]=>
          string(15) "test_objet2.txt"
        }
        [2]=>
        object(SimpleXMLElement)#2 (2) {
          ["name"]=>
          string(7) "Objet 3"
          ["file"]=>
          string(15) "test_objet3.txt"
        }
      }
    }
    Est-ce que le fait que $xml soit un objet gênerait ?

    Bref help please , je commence à manquer d'imagination pour régler ça.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    As-tu essayé de forcer le typage ? Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num = (int) $_GET['num'];

  3. #3
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Bien vu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml->objet[(int)$_GET['num']]->name
    me donne bien ce que je demande.
    Faut y mettre du sien pour accéder à ses donner de nos jours...

    En tout cas résolu.
    Merci beaucoup ça commençait à m'agacer

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/04/2015, 18h47
  2. Réponses: 17
    Dernier message: 09/04/2015, 15h55
  3. Réponses: 2
    Dernier message: 03/11/2007, 11h24
  4. Réponses: 2
    Dernier message: 29/11/2006, 14h49
  5. Réponses: 8
    Dernier message: 25/04/2006, 16h08

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