我在数据库中存储了一个带有名称空间作为字符串的PHP类名称。示例:"App\Fields\TextField"
。稍后,基于该字符串,我想读取该字符串定义的类的静态变量。我该怎么办?
答案 0 :(得分:5)
您实际上可以像这样到达变量:
namespace Foo;
class Test {
public static $foo = "BAR";
}
$string = "Foo\Test";
var_dump($string::$foo); // Output: BAR
答案 1 :(得分:2)
ReflectionClass
的另一个选项
>>> namespace Test;
>>> class MainTest { public static $var = 'Work!'; }
>>> $class = 'Test\MainTest';
=> "Test\MainTest"
>>> (new \ReflectionClass($class))->getStaticPropertyValue('var');
=> "Work!"
如果您想获取所有静态变量:
>>> (new \ReflectionClass($class))->getStaticProperties();
=> [
"var" => "Work!",
]