自PHP 7.1起,他们引入了const可见性,我需要通过反思来阅读它。我尽可能地创建我的ReflectionClass
:
$rc = new ReflectionClass(static::class);
函数getConstants()
返回一个名称/值映射,getConstant($name)
只返回其值。两者都不返回可见性信息。不应该有类似于函数,属性等的ReflectionConst
类吗?
有没有其他方法可以获取此信息?
答案 0 :(得分:2)
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)