PHP类常量数组转换

时间:2012-03-22 19:17:41

标签: php arrays casting enums class-constants

要在PHP中模拟枚举,我喜欢使用类常量。

e.g。

class FRUIT
{
    const apple = 1;
    const orange = 2;
    const lemon = 3;
    const pear = 4;
};

我有一个案例,我希望将此类强制转换为数组以填充选择列表。但是因为类常量表现为静态铸造不起作用,例如(array)(new FRUIT());也不是get_object_vars()方法。

绕过这个最好的方法是什么?我是否需要创建一个内部函数来迭代常量并返回一个数组?

1 个答案:

答案 0 :(得分:7)

  

我是否需要创建一个内部函数来迭代常量并返回一个数组?

都能跟得上!你可以使用Reflection来做到这一点:

$r = new ReflectionClass('FRUIT');
$constants = $r->getConstants();

更多信息here