Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dostęp do obiektu A z obiektu B, gdzie oba są w obiekcie C
SpokoJny_
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.02.2010

Ostrzeżenie: (0%)
-----


Witam!

Oto kod:

  1. <?php
  2. class A{
  3.  
  4.  
  5. }
  6. class B{
  7. //Jak uzyskać dostęp do obiektu klasy A w obiekcie klasy B, gdzie oba są polami obiektu klasy C?
  8. }
  9. class C{
  10. private $A;
  11. private $B;
  12.  
  13. public function __construct(){
  14. $this->A = new A();
  15. $this->B = new B();
  16. }
  17. }
  18. ?>




Na myśl przyszedł mi sposób:
  1. <?php
  2. class A{
  3.  
  4. }
  5. class B{
  6.  
  7. public function __construct($obj){
  8. //piszemy $obj i mamy dostęp do publicznych metod i pól obiektu klasy A,
  9. //który jest polem obiektu klasy C
  10. }
  11. }
  12. class C{
  13. private $A;
  14. private $B;
  15. public function __construct(){
  16. $this->A = new A();
  17. $this->B = new B($this->A); //Przekazujemy konstruktorowi obiektu B dostęp do obiektu A,
  18. // gdzie oba są polami obiektu C
  19. }
  20.  
  21. }
  22. $obj = new C();
  23.  
  24. ?>


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.

Ten post edytował SpokoJny_ 26.08.2010, 16:14:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
webmaniak
post
Post #2





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Pytanie za 1000punktów? A kto twierdzi że php ma wpływ na sposób wyświetlania strony?? Na pewno nie ja, dlatego nie wklejałem tu kodu. Napisałem po prostu że to co napisałeś działa bo komuś innemu też może się przydać. A odpowiedni html i css mam dlatego mnie to dziwi, że źle mi wyświetla.
Jak dam:
  1. $stronaglowna->tresc= 'Jakiś tekst';

to mi dobrze wyświetla. Natomiast :
  1. $stronaglowna->tresc= $b->abcDefGhi();

powoduje że tekst ląduje na samą górę.
Muszę chyba jeszcze raz przeanalizować treść kodu.
Dziękuję za pomoc.

Ten post edytował webmaniak 1.09.2010, 13:23:18
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 05:11