PHP从完整类路径的存储字符串中获取类

时间:2018-07-21 18:51:23

标签: php

我在数据库中存储了一个带有名称空间作为字符串的PHP类名称。示例:"App\Fields\TextField"。稍后,基于该字符串,我想读取该字符串定义的类的静态变量。我该怎么办?

2 个答案:

答案 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!",
   ]