How to call dynamically an method in PHP?

php

Solution

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

Problem

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?

Original source