PHP - 动态引用对象函数

时间:2015-01-14 08:28:24

标签: php

我不确定这是否可行,但我尝试动态调用我的Test类中的函数Dropdown()

通过执行此操作,我能够动态引用我的public $Store;变量。

$model=new Test;
$lol = 'Store';
echo $model->{$lol}; 

但是当我尝试在班上调用函数Dropdown()时,我收到错误Property "Test.Dropdown()" is not defined.

$model=new Test;
$lol = 'Dropdown()';
echo $model->{$lol};

我如何动态调用Test类中的函数?

2 个答案:

答案 0 :(得分:2)

使用$model->{$lol}()调用该方法:

$className = 'Test'; //additional dynamic class call, if needed example for that too.

$class = new $className();
$method = 'Dropdown';
$class->{$method}();

答案 1 :(得分:0)

您可以使用此功能call_user_func()call_user_func_array()

class Test {
    public function Dropdown($text) {
        echo($text);
    }
}

$class  = 'Test';           // class name
$method = 'Dropdown';       // only the method name, the '()' is part of the PHP syntax
$param  = "Hello world\n";  // parameter

call_user_func([$class, $method], $param);