开发者

Can I use a variable to call a method?

开发者 https://www.devze.com 2023-01-27 02:42 出处:网络
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:

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...);
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号