我有一个简单的枚举类,它定义了一些常量,但我想有一些静态方法提供对枚举的反射,以便程序员。
请问这个枚举有什么键?等
我已经实现了这个,它像宣传的那样工作。到目前为止很棒,但我真的很想有一个基本的 Enum 类,其中存在这些方法的实现,并且我的所有 Enum 都可以扩展它并从中受益。
不幸的是,当我这样做时,CLASS魔术变量会返回基类并弄乱反射。我想要的是一个返回子类的函数,但任何可行的方法对我来说都很好。
这是类定义:
final class LG_NutritionalValues
{
// ENUMERATION
const Calories = 1;
const Fat = 2;
const Carbohydrates = 3;
const Etc = 999;
public static function is_valid_key ( $value ) {
$reflect = new ReflectionClass ( __CLASS__ );
return in_array ( $value , array_keys( $reflect->getConstants() ) );
}
public static function list_keys() {
$reflect = new ReflectionClass ( __CLASS__ );
return array_keys( $reflect->getConstants() );
}
} // END enum class