1

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

例如

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

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

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

4

1 回答 1

7

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

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

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

更多信息在这里

于 2012-03-22T19:19:38.187 回答