Is there any way, in PHP, to call methods from a parent class using the arbitrary-argument call_user_func_array? Essentially, I want to write a little bit of boilerplate code that, while slightly less optimal, will let me invoke the parent to a method arbitrarily like this:
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?
}
Is this an odd hack? Yeah. I will be using this boilerplate in many places, though, where there’s likely to be error in transcribing the method args properly, so the tradeoff is for fewer bugs overall.
You can call any method on a parent class, as long as it is not overloaded closer to the class of the instance. Just use
$this->methodName(...)For slightly more advanced magic, here’s a working example of what you seem to want:
Please note that i do not believe this to be a good idea
Basically, this looks up the method
MathStuff::multiplyin the method lookup table, and executes its code on instance data from aDangerousCodeinstance.