PHP类常量数组转换

ben*_*t_w 1 php arrays enums casting class-constants

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

例如

class FRUIT
{
    const apple = 1;
    const orange = 2;
    const lemon = 3;
    const pear = 4;
};
Run Code Online (Sandbox Code Playgroud)

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

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

Rob*_*bik 7

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

不!你可以使用Reflection来做到这一点:

$r = new ReflectionClass('FRUIT');
$constants = $r->getConstants();
Run Code Online (Sandbox Code Playgroud)

更多信息在这里