dqh*_*cks 15 php variables methods static
我试图访问静态方法,但使用变量作为类名.这可能吗?我似乎遇到了问题.我希望能够做到这样的事情:
class foo {
public static function bar() {
echo 'test';
}
}
$variable_class_name = 'foo';
$variable_class_name::bar();
Run Code Online (Sandbox Code Playgroud)
我希望能够使用静态变量做类似的事情.
Bol*_*ock 19
该语法仅在PHP 5.3及更高版本中受支持.以前的版本不理解该语法,因此您的解析错误(T_PAAMAYIM_NEKUDOTAYIM指::运算符).
在以前的版本中,您可以尝试call_user_func()向其传递包含类名及其方法名称的数组:
$variable_class_name = 'foo';
call_user_func(array($variable_class_name, 'bar'));
Run Code Online (Sandbox Code Playgroud)
您可以使用PHP 5.1及以上版本的反射:
class foo {
public static $bar = 'foobar';
}
$class = 'foo';
$reflector = new ReflectionClass($class);
echo $reflector->getStaticPropertyValue('bar');
> foobar
Run Code Online (Sandbox Code Playgroud)