我可以使用变量来调用方法吗?

mus*_*c80 1 php oop codeigniter

当方法名称存储在变量中时,我可以调用方法吗?语法是什么?假设我有以下PHP代码:

class MyClass {
    public $default;

    function index() {
        /* call method named by $this->default */
    }
    function method_1() {}
    function method_2() {}
    ...
}
Run Code Online (Sandbox Code Playgroud)

index() 如果没有专门调用其他方法,则在初始化类时默认调用.

如何index()使用MyClass->$default属性调用其中一个方法?也就是说,如果我通常写:

function index() { $this->method_1(); }
Run Code Online (Sandbox Code Playgroud)

我可以使用我的默认变量来调用正确的方法吗?

Pek*_*ica 8

我可以使用变量来调用方法吗?

是的你可以.例如,在对象内:

$method = "method_1";

if (method_exists($this, $method))
 $this->{$method}();
Run Code Online (Sandbox Code Playgroud)