PHP:动态调用默认方法


PHP: Dynamically call default method

有以下(示例)类:

class klasse
{
    private $var = 'doit';
    function doit($param)
    {
        return md5($param);
    }
    function bla($param)
    {
        // HERES THE PROBLEM
        return $this->{$this->var}($param);
    }
}
// Create new instance
$klasse = new klasse;
// Start the "dynamical output"
echo $klasse->bla('test');

这很好用!但问题是,我想"直接动态"调用md5()函数。所以我不想用"doit()"走弯路。如果我尝试

private $var = 'md5';

在课程开始时,我收到以下(绝对有意义的)错误消息:

致命错误:在第13行中调用未定义的方法klasse::md5()

所以我知道这个错误是有道理的,但我不知道如何避免它?

我该如何处理(直接调用md5())?

谢谢!

这应该有效:

class klasse
{
    public function __construct() {
        $this->var = 'md5';
    }

}
$klasse = new klasse;
echo call_user_func($klasse->var, 'argument');

更多信息,请访问:http://php.net/manual/en/function.call-user-func.php