Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Obiekty i klasy - odwolywanie sie do rodzica
LukenZi
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.07.2010

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


witam!

Mam 3 klasy:

glowna.php
  1. class glowna
  2. {
  3. public $dziecko1,$dziecko2;
  4. public function __construct()
  5. {
  6. require_once "dziecko1.php";
  7. require_once "dziecko2.php";
  8. $dziecko1 = new dziecko1;
  9. $dziecko2 = new dziecko2;
  10. }
  11.  
  12. }

dziecko1.php
  1. class dziecko1 extends glowna
  2. {
  3.  
  4. public function funkcja1()
  5. {
  6.  
  7. echo("Klasa: dziecko1<br />\r\n");
  8. $this->dziecko2->funkcja2();
  9. }
  10.  
  11.  
  12. }

dziecko2.php
  1. class dziecko2 extends glowna
  2. {
  3.  
  4. public function funkcja2()
  5. {
  6.  
  7. echo("Klasa: dziecko2<br />\r\n");
  8. $this->dziecko1->funkcja1();
  9. }
  10.  
  11.  
  12. }



Taki przyklad (IMG:style_emoticons/default/smile.gif)

Chcialbym sie odnosci z klasy dziecko1 do funkcji w dziecko2, laczac je przez klase glowna (ktora oczywiscie zawiera wiecej funkcji poza __construct (IMG:style_emoticons/default/winksmiley.jpg) )

Czy takie podejscie laczenia klas jest poprawne i co powinienem zrobic, aby odwolac sie klasy dziecka do drugiej klasy dziecka poprzez rodzica ?

Powyzszy przyklad nie dziala, moge jedynie przez $this->odwolac sie do funkcji w glowna.php, lub w zaleznosci od klasy do funkcji w niej zawartych.

Pozdrawiam,
Łukasz

Ten post edytował LukenZi 26.07.2010, 11:02:50
Go to the top of the page
+Quote Post
Grand93
post
Post #2





Grupa: Zarejestrowani
Postów: 58
Pomógł: 1
Dołączył: 2.08.2010
Skąd: Dębica

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


Odwołania pomiędzy klasami dokonuje się przez metody statyczne ( static public function )
Dzieci nie mogą się porozumiewać przez rodzica, ale mogą się porozumiewać w taki sposób:
--główna klasa
|__dziecko
....|__dziecko dziecka (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Możesz do obiektu dziecka przypisać obiekt rodzica, czyli:
  1. class glowna
  2. {
  3. public $dziecko1,$dziecko2;
  4. public function __construct()
  5. {
  6. require_once "dziecko1.php";
  7. require_once "dziecko2.php";
  8. $this->dziecko1 = new dziecko1; // zapomniałeś $this
  9. $this->dziecko2 = new dziecko2; // tu też
  10.  
  11. // Przypisujesz rodzica.
  12. $this->dziecko1->parent = $this;
  13. $this->dziecko2->parent = $this;
  14. }
  15.  
  16. }

Potem wewnątrz klasy dziecka robisz tak:
  1. class dziecko1 extends glowna
  2. {
  3.  
  4. public function funkcja1()
  5. {
  6.  
  7. echo("Klasa: dziecko1<br />\r\n");
  8.  
  9. // Musisz najpierw odwołać się do rodzica, a następnie z niego pobrać drugie dziecko.
  10. $this->parent->dziecko2->funkcja2();
  11. }
  12.  
  13.  
  14. }
Go to the top of the page
+Quote Post

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: 24.08.2025 - 13:41