There's the following (example) class:
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');
This works fine! But the problem is that I'd like to call the md5() function "directly dynamically". So I don't want to go the detour with "doit()". If I try
private $var = 'md5';
at the beginning of the class I get the following (absolutely senseful) error message:
Fatal error: Call to undefined method klasse::md5() in - on line 13
So I know that this error is senseful but I have no clue how to avoid it?
How can I handle this (to directly call md5())?
Thank you!
This should work:
class klasse
{
public function __construct() {
$this->var = 'md5';
}
}
$klasse = new klasse;
echo call_user_func($klasse->var, 'argument');
More info at: http://php.net/manual/en/function.call-user-func.php