![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie czy w php5 da się przeciążyć konstruktor? Generalnie wiem, że można przeciążać dowolną funkcję za pomocą __call, ale z konstruktorem jakos mi nie wychodzi (IMG:http://forum.php.pl/style_emoticons/default/mad.gif)
Próbowałem zarówno użyć __construct jak i NazwaKlasy przy przeciążaniu w __call i nic z tego. Czy ktos wie jak można przeciążyć konstruktor? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@ikioloak - chodzi mi raczej o przeciazenie konstruktora klasy tak aby moc go wywyolywac z roznymi parametrami (w innych jezykach to jest mozliwe nie wiem czy w php) - nie o dziedziczenie
@all Podam przyklad co mniej wiecej chce zrobic. W takim razie zalozmy ze tworze klase o nazwie cls_ogloszenie. Bedzie ona zawierala tresc ogloszenia publikowana przez usera lub odczytana z bazy. Teraz musza byc 4 rozne konstruktory: 1) Ktory tworzy ogloszenie z domyslnymi danymi. np __cosntruct() 2) Ktory tworzy ogloszenie na podstawie tablicy asocjacyjnej __construct ($tablica) 3) Ktory tworzy ogloszenie na podstawie id_ogloszenia z danych z formularza np __construct($tytul_ogloszenia, $tresc_ogloszenia itp) 4) Ktory odczytuje ogloszenie z bazy np __construct($bool_odczyt_z_bazy, $id_ogloszenia) Generalnie chodzi mi o to, ze w zaleznosci od podanej ilosci parametrow bedzie wywolywany odpowiedni konstruktor, ktory cos tam zrobi. Probowalem takim kodem to zalatwic:
Wiem ze kod jest jeszcze nie kompletny i trzeba sprawdzac dodatkowo liste parametrow, ale juz nawet w tym przypadku konstruktor jest pomijany -> dla innych funkcji wszystko dziala bez problemu Nie zabardzo rozumiem o co chodzi z tym self::construct -> gdzie nalezaloby tego uzyc? W php jestem nowy. Ten post edytował athabus 30.12.2005, 13:57:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 00:36 |