有以下(示例)类:
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())?
谢谢!
答案 0 :(得分:0)
这应该有效:
class klasse
{
public function __construct() {
$this->var = 'md5';
}
}
$klasse = new klasse;
echo call_user_func($klasse->var, 'argument');