suppose I have a static class A with static method b()
now suppose I have class C with class variable functionName = 'A';
so I want to invoke A's b() function in one line via the following:
//within class C
$this->functionName::b();
however this ends up returning parse error....is there a way that I can invoke A::b() when via $this->functionName when $this->functionName = 'A' in just one line without call_user_func etc?
The Uniform Variable Syntax RFC covers this, and has been implemented for PHP 7.
It has not been back-ported, you will not be able to use that syntax in any version prior.
class a
{
static public function b()
{
echo "Hello!";
}
}
class c
{
public $functionName = 'a';
public function run()
{
$this->functionName::b();
}
}
(new c)->run();
Hello!