![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 21.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Są sobie 3 obiekty:
StdObj Produkt Produkt_extendent dziedziczą jeden po drugim. i teraz taka sytuacja - chcę zwrócić listę w pełni wypełnionych obektów z bazy
no i jedziemy z koksem:
No i jest dupa - bo w metodzie Produkt_ext -> dbPobierz() wywołuję parent::dbPobierz($this->produkt_id); a w dbPobierz() już nie wykonuje się __construct_from_assoc() z Produkt - tylko z Produkt_ext. Nie mogę wrzucić do $Produkt->dbPobierz() zamiast $this -> __construct_from_assoc($produkt); dać parent no bo to nie logiczne i przestanie mi działać.... No any way.... to jakaś lipa.... W skrócie jeszcze raz W poziomu Produkt_ext wywołuję parent::dbPobierz. W ciele klasy Produkt jest wywoływana metoda __construct_from_assoc (ale Produkt_ext też ma metodę __construct_from_assoc) no i wywołuje się ta z Produkt_ext a nie z Produkt. Jakaś rada?? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
No to może inaczej zapytam - jak przeciążyć nazwę metody w PHP?? Czy ktoś wie?? PHP nie umozliwia przeciążania metod. To nie java (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W php za to można jako parametr przekac rozne typy danych. Na tej podstawie mozesz kombinowac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przeciążanie samo w sobie nie jest możliwe w PHP, jednak jest kilka funkcji, które mogą "emulować" takie zachowanie: func_get_arg func_num_args func_get_args Dzięki temu możesz przekazywać do metody dowolną ilość argumentów o różnych typach. Jednak z doświadczenia wiem, że rozwiązanie nie należy do najprzyjemniejszych w użyciu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 11:05 |