Can I use a variable to call a method?
Can I call a method when the method name is stored in a variable? What's the syntax? Suppose I have the following PHP code:
class MyClass {
public $default;
function index() {
/* call method named by $this->default */
}
function method_1() {}
function method_2() {}
...
}
index()
is called by default when the class is initialised if no other method is specifically called.
How can I call one of the methods from within index()
using the MyClass->$default
property? That is, if I would ordinarily write:
function index() 开发者_运维技巧{ $this->method_1(); }
can I use my default variable to call the correct method?
Can i use a variable to call a method?
Yes you can. For example, inside an object:
$method = "method_1";
if (method_exists($this, $method))
$this->{$method}();
Yes you can using this syntax:
$methodname = 'method_1';
$this->$methodname();
There's also the call_user_func workaround:
call_user_func( array($this,$methodname), $arg...);
精彩评论