Accéder à la méthode d'un objet stocké dans un second objet

Résolu/Fermé
Eiji - Modifié par Eiji le 6/04/2013 à 12:57
 Utilisateur anonyme - 6 avril 2013 à 13:45
Bonjour,
Après quelque recherche, je me vois obligé de solliciter votre aide.
J'aimerai accéder methode() de $objetA, qui est lui, stocké dans $objetB. Je procède ainsi :

Page ObjetA.class.php
<?php  

      class ObjetA{ 
            var maVariableA; 
            //et j'en passe... 
             
            function __construct($varA){ 
                     $this->maVariableA = $varA; 
            } 

            function getVarA(){ 
                     echo $this->maVariableA; 
            } 
      } 
?>


Page ObjetB.class.php
<?php  

      class ObjetB{ 
            var maVariableB; 
            //et j'en passe... 
            var monObjetA; 
             
            function __construct($varB, $objetA){ 
                     $this->maVariableB = $varB; 
                      
                     $this->monObjetA = $objetA; 
            } 

            //... 
      } 
?>


Page index.php
<?php 
     include_once('ObjetA.class.php'); 
     include_once('ObjetB.class.php'); 

     $uneVariableA = "bububu"; 
     $uneVariableB = "bababa"; 
     $unObjetA = new ObjetA($unevariableA); 
     $unObjetB = new ObjetB($uneVariableB, $monObjetA); 

     $monObjetB->monObjetA->getVarA();//Marche pas... 
?>


Est-ce possible? Ou ai-je fait un(des) erreur(s)?
La question n'est pas de savoir si j'ai raison ou pas de la faire, car le systeme est un peu plus compliquer que ce que je vous ai représenté au dessus.

L'erreur retournée est la suivante :
Call to undefined method stdClass::getVarA() in C:\wamp\www\robotik's\config.php on line ... (la ligne étant celle du
$monObjetB->monObjetA->getVarA();


Je vous remercie d'avance pour votre aide! :D
A voir également:

4 réponses

Utilisateur anonyme
6 avril 2013 à 13:22
Bonjour

Je suppose (pas essayé) que ça marche ... si tu ne trompes pas dans tes noms de variables

     $unObjetA = new ObjetA($unevariableA); 
     $unObjetB = new ObjetB($uneVariableB, $monObjetA); 
0
Je viens de vérifier et en dehors de la coquille ici, j'ai le même nom partout.
Ce qui est étrange, c'est que lorsque j'appel ma variable, elle s'affiche correctement. Par contre, dès qu'il s'agit d'une méthode, et ce même la plus simple possible, il y a une erreur....
0
Bonbonbon... Il doit y avoir une sacré coquille dans mon code car en vérifiant, il se trouve que un objet situé dans mon ObjetA me renvois parfaitement sa methode...
Ca marche Avant, ca marche Apres, mais pas la ou je veux... Bref, merci en tout cas ^^
0
Utilisateur anonyme
6 avril 2013 à 13:45
Juste une idée : problème d'associativité de -> ?
as-tu essayé
($monObjetB->monObjetA)->getVarA();
0