我试图通过使用变量类名访问类中的静态变量.我知道为了访问类中的函数,您使用call_user_func():
class foo {
function bar() { echo 'hi'; }
}
$class = 'foo';
call_user_func(array($class, 'bar')); // prints hi
Run Code Online (Sandbox Code Playgroud)
但是,当尝试访问类中的静态变量时,这不起作用:
class foo {
public static $bar = 'hi';
}
$class = "foo";
call_user_func(array($class, 'bar')); // nothing
echo $foo::$bar; // invalid
Run Code Online (Sandbox Code Playgroud)
我如何得到这个变量?它甚至可能吗?我有一种不好的感觉,这只适用于PHP 5.3,我正在运行PHP 5.2.6.
我知道可以使用变量作为名称来访问对象属性/方法
例:
$propName = 'something';
$something = $object->$propName;
Run Code Online (Sandbox Code Playgroud)
是否可以执行相同的w /常量或静态属性?
我试过了:
$ constName ='MY_CONST';
MyCLass::{$constName};
Run Code Online (Sandbox Code Playgroud)
和
$obj::{$constName};
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何工作,我无法在任何地方找到它.