Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dziedziczenie z non-static do static
TrAvIkK
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

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


Mam oto 2 klasy, jedna non-static, druga static, przykładowo:

  1. <?php
  2. class Matka
  3. {
  4. protected $id = 523;
  5. ...
  6. }
  7.  
  8. class Dziecko extends Matka
  9. {
  10. public static function add($param)
  11. {
  12. // Jak wykorzystac $id z obiektu Matka ?
  13. }
  14. }
  15. ?>


No i właśnie, jak w obiekcie podrzędnym wykorzystać zmienną z obiektu nadrzędnego ?
Byłoby to proste, gdyby oba były static, lub non-static. Ja mam taką sytuacje, i nie zabardzo mogę ją zmienić.
$id musi pozostać non-static.

Wiem, że moge dodać global $nazwaKlasy; i $nazwaKlasy->id w funkcji add, ale to chyba nie tak się robi w 5 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Nie da sie.

Cytat
Byłoby to proste, gdyby oba były static, lub non-static

i gdy z niestatycznej metody dobierasz sie do statycznej zmiennej
Go to the top of the page
+Quote Post
TrAvIkK
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

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


Czyli muszę przez global?
No nic... Niech i tak będzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Nie. Co w ogole chcesz osiagnac?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Czy to cała klasa? Jeśli tak, to po co wogóle dziedziczenie?
Zainteresuj się singletonem - może to Ci coś rozjaśni : ) Pozdrawiam.
Go to the top of the page
+Quote Post
TrAvIkK
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

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


Cytat
Czy to cała klasa?


Niee, to było pisane od palca oczywiście.
Klasa matka składa się z kilkunastu funkcji, a dziecko jak narazie z dwóch.

Cytat
Co w ogole chcesz osiagnac?


Chce po prostu wykorzystać jedną zmienna, z klasy nadrzędnej.
Ta zmienna ma nadawaną wartość, przy tworzeniu obiektu nadrzędnego.
Go to the top of the page
+Quote Post
UDAT
post
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Z samej definicji statycznego elementu klasy wynika że element ten należy do klasy jako klasy, a nie do konkretnej instancji.

Skąd miałby obiekt potomny wiedzieć którą Matkę wybrać.
  1. <?php
  2. for ( $i=0; $i<100; ++$i ) {
  3. $tablicaMatek [ $i ] = new Matka ( );
  4. }
  5.  
  6. Dziecko::add ( $params );
  7. ?>


Co powinien powyższy kod dać?

Możesz też dać w konstruktorze tablicowanie instancji klasy w zmiennej statycznej o odwoływać się do elementów tej tablicy.
Go to the top of the page
+Quote Post
TrAvIkK
post
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

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


Cytat
Możesz też dać w konstruktorze tablicowanie instancji klasy w zmiennej statycznej o odwoływać się do elementów tej tablicy.


I z tego chyba skorzystam, dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 26.09.2025 - 13:50