Czy istnieje sposób, w PHP, wywoływania metod z klasy nadrzędnej za pomocą argumentu arbitralnego call_user_func_array
? Zasadniczo chcę napisać trochę kodu boilerplate że chociaż nieco mniej optymalne, pozwolą mi powołać rodzica jest sposób arbitralny tak:Używanie funkcji call_user_function do uzyskiwania dostępu do metody nadrzędnej w PHP
function childFunction($arg1, $arg2, $arg3 = null) {
// I do other things to override the parent here...
$args = func_get_args();
call_user_func_array(array(parent, __FUNCTION__), $args); // how can I do this?
}
Czy to dziwne Hack? Tak. Będę korzystał z tej tablicy w wielu miejscach, gdzie prawdopodobnie wystąpi błąd w przepisywaniu poprawnie metod, więc kompromis jest mniejszy niż ogólny błąd.
Założę się, że taka konstrukcja może powodować błędy, ponieważ 'call_user_func_array' i przyjaciele są nieco magiczni. Coś mi mówi, że prawdopodobnie jest lepsze rozwiązanie, ale problem nie jest dla mnie wystarczająco jasny, by to zobaczyć. – Kris