在PHP中获得const可见性
问题描述:
自PHP 7.1以来,他们引入了const可见性,我需要通过反射来读取它。我去就创建我ReflectionClass
这样的:在PHP中获得const可见性
$rc = new ReflectionClass(static::class);
getConstants()
返回一个名称/值映射和getConstant($name)
只是其价值的功能。两者都不会返回可见性信息。不应该有类似于函数,属性等的类ReflectionConst
?
是否有任何其他方式获取此信息?
答
对此的反射改变在the feature's RFC中被触及,尽管我不知道他们是否已在其他地方记录过。
新阶级ReflectionClassConstant
相关方法(其中包括):
isPublic()
isPrivate()
isProtected()
ReflectionClass
有两个新的方法:
-
getReflectionConstants()
- 返回ReflectionClassConstants -
getReflectionConstant()
的阵列 - 按名称检索ReflectionClassConstant
实施例:
class Foo
{
private const BAR = 42;
}
$r = new ReflectionClass(Foo::class);
var_dump(
$r->getReflectionConstants(),
$r->getReflectionConstant('BAR')->isPrivate()
);
输出:
array(1) {
[0]=>
object(ReflectionClassConstant)#2 (2) {
["name"]=>
string(3) "BAR"
["class"]=>
string(3) "Foo"
}
}
bool(true)
它的工作原理perfectl哟,谢谢!我希望他们没有记录在任何地方的事实会让我感到惊讶,但事实并非如此。 – MMauro