Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wykonanie paru konstruktorów bez parent::__construct()
hausner15
post 3.05.2010, 12:57:05
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 5.02.2007

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


Witam,
Mam mały problem.

Otóż mam klasę i klasę dziedziczącą po niej.
W obydwu klasach są konstruktory, i chciałbym aby wykonały się obydwa.
I teraz najważniejsze - chciałbym aby wykonały się one obydwa, ale bez używania w klasie która dziedziczy
  1. parent::__construct();


Czy jest w ogóle taka możliwość?

Poniżej przykładowy kod dla zobrazowania:
  1. class a {
  2. function __construct() {
  3. \\Robię coś
  4. }
  5. }
  6.  
  7. class b extends a {
  8. function __construct() {
  9. parent::__construct(); //To ma się wykonać ale bez tej linii :)
  10. \\Robię coś innego
  11. }
  12. }


Go to the top of the page
+Quote Post
wookieb
post 3.05.2010, 13:05:45
Post #2





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




Nie ma takiej możliwości. Ale dlaczego chcesz mieć taki efekt?


--------------------
Go to the top of the page
+Quote Post
hausner15
post 3.05.2010, 13:15:47
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 5.02.2007

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


Ponieważ mam konstruktor w klasie bazowej który wyświetla komunikat przypominający użytkownikowi o pewnej rzeczy.
Użytkownik ma mieć możliwość tworzenia klas pochodnych od tej, ale nie chce aby musiał za każdym razem dla klasy pochodnej dodawać parent::__construct().

No nic poradzę sobie w inny sposób.

Dzięki, pozdrawiam!
Go to the top of the page
+Quote Post
wookieb
post 3.05.2010, 13:24:02
Post #4





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




Więc w takim razie rób coś takiego
  1.  
  2. class base
  3. {
  4. public function __construct()
  5. {
  6. $this->init();
  7. }
  8.  
  9. protected function init()
  10. {
  11.  
  12. }
  13. }
  14.  
  15. class test extends base
  16. {
  17. protected function init()
  18. {
  19. // i tutaj umieszczaj kod , który ma być wywoływane razem z konstruktorem
  20. }
  21. }




--------------------
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: 6.07.2025 - 22:18