Oto kod:
<?php class A{ } class B{ //Jak uzyskać dostęp do obiektu klasy A w obiekcie klasy B, gdzie oba są polami obiektu klasy C? } class C{ private $A; private $B; public function __construct(){ $this->A = new A(); $this->B = new B(); } } ?>
Na myśl przyszedł mi sposób:
<?php class A{ } class B{ public function __construct($obj){ //piszemy $obj i mamy dostęp do publicznych metod i pól obiektu klasy A, //który jest polem obiektu klasy C } } class C{ private $A; private $B; public function __construct(){ $this->A = new A(); $this->B = new B($this->A); //Przekazujemy konstruktorowi obiektu B dostęp do obiektu A, // gdzie oba są polami obiektu C } } $obj = new C(); ?>
Czy istnieje jakaś inna możliwość?
W moim skrypcie będę korzystał z obiektu klasy A w wielu innych obiektach, gdzie wszystkie są zawarte w obiekcie klasy
C i nie chciałbym za każdym razem przekazywać do konstruktora innych obiektów referencji do obiektu A.
Innym rozwiązaniem może być stała klasowa w postaci obiektu, wtedy mógłbym się odwoływać A::obj->costam.