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%)
-----


Witam. Mam podobny problem(nie identyczny).
Mianowicie mam strona.inc.php
  1. class Strona{
  2. //atrybuty
  3. //metody
  4. public function WyswietlWszystko()
  5. {
  6. ...
  7. }
  8. }


Następnie mam baza.inc.php:
  1. class sql extends mysqli{
  2. public function polaczenie()
  3. {
  4. echo ...
  5. }
  6. }




i plik index.php:
  1. $stronaglowna = new Strona();
  2. $b=new sql();
  3. $stronaglowna->tytul= "Witam na mojej stronie";
  4. $stronaglowna->tresc= 'Tu chce sie obwolac do metody klasy sql'; //nie wiem jak
  5. $stronaglowna->WyswietlWszystko();


Problem w tym że w tresc chce się odwołać do metody klasy sql, ale coś źle kombinuje. Proszę o pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 07:27