![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki mini problem, mam o to taki zestaw klas:
Gdy działam na obiekcie klasy Concrete, php wywala mi taki komunikat: Cytat Strict Standards: Declaration of D::setObject() should be compatible with that of C::setObject() in [...] Co o tym myślicie, czy nie jest to troszkę na wyrost? Wiadomo, co chciałem przez to osiągnąć... Jak do tego podejść tak w ogóle? Pozdrawiam Ten post edytował likemandrake 3.02.2009, 19:46:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Programowałem w C++ i rzeczywiście jeśliby klasy które napisałem powyżej przestawić na ten język, klasa D zawierałaby dwie wersje metod (taką która przyjmuje obiekty klasy A, oraz taką która przyjmuje obiekty klasy B ).
To by wszystko wyjaśniało, dlaczego tak się dzieje w PHP, możnaby sobie powiedzieć, że z powodu braku funkcji przeładowywania metod, programiści mogliby rozwiązać ten problem inaczej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cóż najlepszym w takim wypadku będzie w metodzie klasy D przyjmować parametr typu A, oraz rzucać wyjątek w metodzie, jeśli nie przekazano obiektu klasy B. Pozdrawiam Ten post edytował likemandrake 3.02.2009, 21:37:19 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:38 |