Php 我可以使用变量来调用方法吗?
当方法名存储在变量中时,我可以调用方法吗?语法是什么?假设我有以下PHP代码:Php 我可以使用变量来调用方法吗?,php,oop,codeigniter,Php,Oop,Codeigniter,当方法名存储在变量中时,我可以调用方法吗?语法是什么?假设我有以下PHP代码: class MyClass { public $default; function index() { /* call method named by $this->default */ } function method_1() {} function method_2() {} ... } 如果没有专门调用其他方法,则在初始化类时默认调用i
class MyClass {
public $default;
function index() {
/* call method named by $this->default */
}
function method_1() {}
function method_2() {}
...
}
如果没有专门调用其他方法,则在初始化类时默认调用index()
如何使用MyClass->$default
属性从index()
中调用其中一个方法?也就是说,如果我通常写:
function index() { $this->method_1(); }
我可以使用默认变量调用正确的方法吗
我可以使用变量来调用方法吗
是的,你可以。例如,在对象内部:
$method = "method_1";
if (method_exists($this, $method))
$this->{$method}();
我可以使用变量来调用方法吗
是的,你可以。例如,在对象内部:
$method = "method_1";
if (method_exists($this, $method))
$this->{$method}();
是,您可以使用以下语法:
$methodname = 'method_1';
$this->$methodname();
是,您可以使用以下语法:
$methodname = 'method_1';
$this->$methodname();
还有解决办法:
call_user_func( array($this,$methodname), $arg...);
还有解决办法:
call_user_func( array($this,$methodname), $arg...);
看一看