为了在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();
更多信息请点击此处