我有一个简单的枚举类,它定义了一些常量,但是我想让一些静态方法提供枚举的反射,这样一个程序员。
我可以问这个枚举有什么键吗?等等。
我已经实现了它,它的工作方式与宣传的一样。到目前为止很棒,但我真的希望有一个基本的枚举类,这些方法的实现存在,我的所有枚举都可以扩展它并从中受益。
不幸的是,当我这样做时, 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