2012-03-22 61 views
1

模拟PHP中的枚举我喜欢使用类常量。PHP类常量Array Cast

例如

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

我有一种情况,我想将这个类转换为数组来填充选择列表。但是,因为类常量静态表现,铸造不起作用,例如(array)(new FRUIT());也不是get_object_vars()方法。

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

回答

7

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

不!您可以使用反射来做到这一点:

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

更多信息here

+1

我不知道这一点 - 非常感谢! – 2012-03-22 19:22:44