2011-02-16 5 views
0

Comment accéder aux propriétés de la classe A à partir d'un objet instancié dans la classe A.Accès aux propriétés de classe

Comme ceci;

class A() 
public var1; 
public obj1; 

function __construct(){ 
    $this->var1 = 'Hello World'; 
    $this->obj1 = new B(); 
} 

==============

class B() 

function anything(){ 
    #i want to access var1 from the calling class here ???? 
    # how do i access var1 in the calling class 
} 
+0

* (référence) * [classes et les objets - Notions de base] (http://de2.php.net/manual/en/language.oop5.basic.php) – Gordon

+0

* (lié) * [Learning OOP] (http://stackoverflow.com/search?q=learning+oop+php) – Gordon

+0

duplication possible de [Trouver quelle classe a appelé une méthode dans une autre classe.] (http: // stackoverflow .com/questions/1214043/find-out-quelle-class-called-a-method-in-another-class) – Gordon

Répondre

3

Il n'y a aucun moyen de le faire directement. L'injection de dépendance est une possibilité:

class B { 

    protected $A = null; 

    public function __construct($A) { 
     $this->A = $A; 
    } 

    public function foo() { 
     $this->A->var1; 
    } 

} 

class A { 

    public function __construct() { 
     $this->obj1 = new B($this); 
    } 

} 
+0

Notez que ce type de référencement cyclique peut causer des problèmes lors de la tentative de suppression de l'instance en PHP avant 5.3 –

Questions connexes