Example: I have an variable like
$method = "doSomething";
Assume that I have an $myObject which knows a nonstatic, public method doSomething()
Could I then just call that method by doing this?
$myObject->$method();
Or is there another / better way?
Yes, you can do that :
$myObject->$method();
This is called Variable functions
And here is the code that proves it :
class ClassA {
public function method() {
echo 'glop';
}
}
$a = new ClassA();
$methodName = 'method';
$a->$methodName();
Gets you this output :
glop
Which means the method has been called ;-)
Another way would be to use call_user_func
or call_user_func_array
:
call_user_func(array($a, $methodName));
Here, you don't need this -- but you'd have to use that if your method was static
, at least for PHP <= 5.2
Yes, however it is recommended that you first ensure the method exists prior to calling it:
if (method_exists(array($myObject, $method)) {
$myObject->$method();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With