1
我有一个简单的枚举类,它定义了一些常量,但我希望有几个静态方法提供对枚举的反射,所以程序员。获取子类名称?
我能问键做什么此枚举有?等等
我已经实现了这一点,它像宣传的那样。目前为止,但我真的很想拥有一个Enum类的基础,这些方法的实现存在,并且我的所有枚举都可以扩展它并从中受益。
不幸的是,当我这样做的时候,魔术变量返回基类并混淆了反射。我想要的是返回子类的函数,但任何可行的方法对我来说都很好。
这里的类定义:
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
正是我需要的,我应该能够住在一起PHP5.3约束。谢谢! – ken
太好了,不客气:) – Asciiom