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 :

affectation de variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 87
    Par défaut affectation de variable
    Bonjour,

    Je suis complètement débutant en programmation php... (Mais tout à fait familier à la programmation objet ne nous inquiétons pas !)

    Je suis un peu dérouté par le comportement suivant et me dit que vous aurez peut être une piste :


    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
    class MyDocument extends DOMDocument 
    {
    	protected $root_;		// XML document root
     
    	public function __construct ()
    	{
    		parent::__construct ();
    		$this->root_ = $this->documentElement;
    		echo "contructeur";
    		$this->root_->appendChild($this->createElement('item'));
    	}
     
    	public function item_add ($s)
    	{
    		$newitem = $this->createElement("item");
    		$newitem->appendChild($this->createTextNode($s));
    		$this->documentElement->appendChild($newitem);
    	}
    }
     
    $xml = "<root><test>ceci is a test</test></root>";
    $test = new MyDocument();
    $test->loadXML($xml);
    $test->item_add("Geraud fait un test");
    echo $test->saveXML();
    Ce qui me pose problème c'est les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->root_ = $this->documentElement;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->root_->appendChild($this->createElement('item'));
    .

    J'ai l'erreur suivante :
    Erreur de débogage: C:\...\MyDocument.class.php ligne 10 - Call to a member function appendChild() on a non-object
    Erreur que je n'ai pas si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->documentElement->appendChild($this->createElement('item'));
    Je ne comprend pas puisque $root_ est sencé pointer vers $this->documentElement.

    Voyez vous d'où peut venir le problème ?

    Merci d'avance de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 41
    Par défaut
    Salut,
    la réponse vient un peu tard mais tu devrais dans le constructeur définir le type de ta variable ainsi $this->root_ = new taClasse()...
    Tout simplement elle n'est pas typée dans la déclaration comme elle le serait dans un autre langage..
    @+

Discussions similaires

  1. Problème d'affectation de variable
    Par bob33 dans le forum C
    Réponses: 3
    Dernier message: 04/11/2005, 17h01
  2. Affecter une variable javascript à une variable php
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 20h58
  3. affecter une variable de type stringstream
    Par sorari dans le forum SL & STL
    Réponses: 3
    Dernier message: 24/03/2005, 11h14
  4. [PS] affectation de variable
    Par madmortal dans le forum SQL
    Réponses: 2
    Dernier message: 01/09/2004, 13h17
  5. script SQL : affectation de variables
    Par Laura dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/10/2003, 21h32

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