PHP类常量数组强制转换


PHP Class Constants Array Cast

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

例如

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

我有一个例子,我想将这个类强制转换为一个数组来填充一个选择列表。然而,由于类常量的行为是静态的,因此强制转换不起作用,例如(array)(new FRUIT());get_object_vars()方法也不起作用。

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

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

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

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

更多信息请点击此处