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 :

appel a une fonction membre sur un non-object


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut appel a une fonction membre sur un non-object
    bonjour à tous,

    j essaie de recuperer des données d'un objet membre et j ai ce message d erreur qui me laisse perplexe :
    "Fatal error: Call to a member function getX() on a non-object "
    voici le code...
    j ai une premiere classe
    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
    class Point{
    	//ATTRIBUTS
    	private $x;
    	private $y;
    	//CONSTRUCTEURS
    	public function __construct($x,$y){
    		$this->x=$x;
    		$this->y=$y;
    	}
    	//METHODES
    	public function getX(){
    		return $this->x;
    	}
    	public function getY(){
    		return $this->y;
    	}
            // ....
    }
    et c'est de celle ci que l erreur provient
    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
    class Rectangle{
    	//ATTRIBUTS
    	 public $pt;
    	 private $dim;
    	//CONSTRUCTEURS
    	public function __construct(Point $p,Dimension $d){
    		$pt=$p;
    		echo '<br/>'.$pt->getX();//pas d'erreur
    		$dim=$d;
    	}
            // ...
    	public function getX(){               
                    echo '<br/>'.$pt->getX();//erreur
                    return $pt->getX();        //erreur
    	}
    il s agit ici de la derniere solution que j ai essayé (cad $pt en public...)
    je ne vous fais pas la liste des idées saugrenues que j ai pu avoir...
    variable tampon de type Point, transtypage, $this->pt->getX(), ...

    pourquoi il ne s'agit pas d un objet en dehors du constructeur?

    bref comment peut on realiser quelque chose qui parait aussi simple de maniere sans doute un peu plus compliquée?

    merci d'avance pour toute aide, mon etat present est : foo(totensai);

    PS inutile de vous preciser que j ai le meme probleme avec l attribut $dim

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Une instance de classe est accessible via le pointeur $this. Dans le constructeur de ta classe Rectangle tu fais $pt = $p or ça devrait être $this->pt = $p;.
    De même pour $dimEnsuite dans ta fonction getX(), tu dois renvoyer la valeur de la variable de classe $pt et tu as oublié le pointeur vers l'instance de classe $this, cela devrait être : echo '<br/>'.$this->pt->getX();En oubliant le pointeur $this, ton code crée des variables locales ayant une portée de fonction.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    un enorme merci...

    j etais pourtant persuadé d avoir deja essayé cela...c est dingue
    je vais enfin pouvoir dormir

    je ne cache pas ma petite honte

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

Discussions similaires

  1. Appel d'une fonction JS sur l'attr. d'une balise
    Par JYDARTHA dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/04/2015, 20h30
  2. Appel d'une fonction JS sur onchange
    Par Benduroy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 30/10/2012, 15h02
  3. Appel non conforme d'une fonction membre non static
    Par kryptong dans le forum Débuter
    Réponses: 3
    Dernier message: 16/04/2012, 17h00
  4. Réponses: 10
    Dernier message: 31/03/2010, 23h34
  5. Réponses: 3
    Dernier message: 16/05/2006, 18h22

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