Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.08.2009 Ostrzeżenie: (0%)
|
Powitać.
Mam do czynienia z następującym problemem: klasa B dziedziczy po klasie A. W klasach dziedziczących po A chcę sprawdzać czy istnieje w nich jakaś metoda przy pomocy if (method_exists($this, $command), następnie jeśli została ona odnaleziona, powinna zostać wywołana poprzez call_user_func($command, $arguments); . Ponieważ czynność ta będzie powtarzać się w każdej klasie potomnej po A, chcę to zrobić jak należy, poprzez zapisanie tego w postaci metody klasy A. Tak więc mamy:
I owszem, tworzę obiekt klasy B, if (method_exists($this, $command)) zwraca TRUE, metoda jakasMetoda jest widziana w klasie potomnej ( B ), ale wywołanie jej kończy się komunikatem First argument is expected to be a valid callback in (...) . Gdy umieszczę metodę CheckMethod() w klasie potomnej, to naturalnie wszystko działa poprawnie. Nie chcę jednak ładować tego kodu do każdej z klas, bo po to mam mechanizm dziedziczenia aby oszczędzić sobie nadmiarowej roboty. Jakieś pomysły? Ten post edytował thre4d 4.08.2009, 18:32:00 |
|
|
|
thre4d Wywołanie call_user_func 4.08.2009, 14:53:31
erix Każdy callback w PHP może być wywo... 4.08.2009, 15:10:13
thre4d Aj. Przykład pisałem na szybko, więc lekko go... z... 4.08.2009, 15:32:51
-=Peter=- Podejżewam że u Ciebie zmienna $arguments jes... 4.08.2009, 15:41:25
wookieb Metoda, która chcesz wywołać musi by... 4.08.2009, 15:44:37
thre4d -=Peter=- - Zmienna $arguments = NULL 4.08.2009, 17:20:13
wookieb Przeczytaj jeszcze raz co napisałem i zobacz jak m... 4.08.2009, 17:46:45
thre4d wookieb - Zwracam honor. Przykład pisałem pod będą... 4.08.2009, 18:34:04
wookieb Ale ten kod, który podałem działa. Sprawdź. Wszyst... 4.08.2009, 18:35:59 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 21:01 |