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] Utilisation de simplexml_element


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut [POO] Utilisation de simplexml_element
    Bonsoir,
    je me mets à la POO dans PHP5 et j'ai un problème avec ma classe qui n'a pour but de lire un fichier xml et de renvoyer quelques infos.
    Dans le constructeur je peux accéder aux infos sans problème, comme
    echo $xml->projet[0]->titre;
    Mais dans la méthode afficheXML() ça ne va plus...

    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
    <?php
    class InfosXML{
    	private $xml;
     
    	public function __construct($url){
    		if (file_exists($url)){
    			$xml = simplexml_load_file($url);
    			echo $xml->projet[0]->titre;
    		}
    		else
    			echo"Le fichier $url n'a pas été trouvé!";
    	}
     
    	public function afficheXML(){
    		$xmlTmp = $this->xml;
    		foreach($xmlTmp->projet as $cle=>$val){
    			echo "Titre : $val->titre  $val->vignette $val->fichier.</br>"; //Notice: Trying to get property of non-object in InfosXML.php on line 17
    		}
    		echo $this->xml->projet[0]->titre; //Notice: Trying to get property of non-object in InfosXML.php on line 19
    	}
    }
    ?>
    Si quelqu'un voit là où je me gourre...
    Merci,
    Philippe.

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    A première vue, c'est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->xml = simplexml_load_file($url);
    echo $this->xml->projet[0]->titre;
    Fred

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Yo!
    c'est bien ça. Je ne sais pas pourquoi je m'étais ms en tête qu'au sein de __construct() on utilisait une syntaxe directe pour accéder aux propriétés, comme $xml, mais qu'au sein des autres méthodes de la classe il fallait utiliser : $this->xml
    Si je comprends bien en fait c'était comme si j'avais déclaré une variable locale au constructeur...
    Merci!

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

Discussions similaires

  1. [POO] utiliser Word avec php
    Par ygaudin dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2006, 11h04
  2. Réponses: 4
    Dernier message: 25/07/2006, 16h30
  3. Réponses: 21
    Dernier message: 04/05/2006, 20h00
  4. [POO] utilisation d'objets
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2006, 10h32
  5. [POO] Utilisation d'une classe dans une classe !
    Par Okinou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 14h34

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