Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] dziedziczenie klas
propage
post 14.06.2010, 14:10:55
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


Mam pewien problem, gdy mam dwie klasy, przy czym jedna dziedziczy po drugiej, chciałbym zrobić tak, iż w klasie nadrzędnej przypisuje funkcje, ktore mają być wykonane w momencie gdy w klasie podrzędnej zostanie wykonana inna funkcja

  1. class a
  2. (
  3. function a()
  4. )
  5. class b extends a
  6. (
  7. function b()
  8.  
  9. )


Czyli w monecie $b->b() powinna wykonać się również $a->a() jest jakiś sposób, aby to zapisać w klasie a (bez dokładania dodatkowego kodu do klasy cool.gif?
Go to the top of the page
+Quote Post
wookieb
post 14.06.2010, 14:38:54
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Po pierwsze teraz używamy __construct

  1. class a
  2. {
  3. public function __construct()
  4. {
  5.  
  6. }
  7. }
  8.  
  9. class b extends a
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. }


--------------------
Go to the top of the page
+Quote Post
Wiktor P.
post 14.06.2010, 18:15:37
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 9
Dołączył: 14.09.2009

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


Jeśli nie przeszkadza ci, że będzie to funkcja statyczna, to można
  1.  
  2. class b extends a {
  3.  
  4. public function b()
  5. {
  6. (...)
  7. a::a();
  8. }


A jeżli przeszkadza, to

  1. class b extends a {
  2.  
  3. public function b()
  4. {
  5. (...)
  6. parent::a();
  7. }
Go to the top of the page
+Quote Post
propage
post 21.06.2010, 13:15:37
Post #4





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


Chodzi o to, aby obyć się kompletnie bez modyfikacji klasy b
Go to the top of the page
+Quote Post
yevaud
post 21.06.2010, 13:21:35
Post #5





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


jesli metoda B uruchamia swojego parenta, to sie da.
jesli nie to nie bardzo i dobrze smile.gif
Go to the top of the page
+Quote Post
230005
post 21.06.2010, 13:22:46
Post #6





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

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


Bez modyfikacji, czyli dopisania choć jednej linii kodu się nie da. A tak poza tym to jest jak napisał wookieb, no chyba że te dwie funkcje to nie konstruktory, tylko przez przypadek tak wyglądają to zrób jak pisze wiktor...
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:49