我有一个我写的类就像一个枚举:
abstract class Enum {
const VAL1 = "Val1";
const VAL2 = "Val2";
}
我想定义一个静态函数,它将返回类的所有常量成员,但我能找到的唯一函数是 ReflectionClass::getStaticProperties。不幸的是,看起来我不能这样使用它。我的理解是常量是隐式静态的,但函数忽略了它们。有没有一种我没有找到的方法可以以类似的方式给我一个常量数组?
我有一个我写的类就像一个枚举:
abstract class Enum {
const VAL1 = "Val1";
const VAL2 = "Val2";
}
我想定义一个静态函数,它将返回类的所有常量成员,但我能找到的唯一函数是 ReflectionClass::getStaticProperties。不幸的是,看起来我不能这样使用它。我的理解是常量是隐式静态的,但函数忽略了它们。有没有一种我没有找到的方法可以以类似的方式给我一个常量数组?
::getConstants
反而……怎么样?
您可以为此使用反射。
<?php
class Enum {
const VAL1 = "Val1";
const VAL2 = "Val2";
}
$refl = new ReflectionClass('Enum');
print_r($refl->getConstants());
输出:
Array
(
['VAL1'] => Val1
['VAL2'] => Val2
)