Констант класса PHP Array Cast
Для симуляции перечислений в PHP мне нравится использовать константы классов.
например
class FRUIT
{
const apple = 1;
const orange = 2;
const lemon = 3;
const pear = 4;
};
У меня есть случай, когда я хотел бы привести этот класс к массиву, чтобы заполнить список выбора. Однако, поскольку константы класса ведут себя статически, приведение не работает, например (array)(new FRUIT());
и при этом get_object_vars()
метод.
Какой лучший способ обойти это? Нужно ли создавать внутреннюю функцию для итерации констант и возврата массива?
1 ответ
Решение
Нужно ли создавать внутреннюю функцию для итерации констант и возврата массива?
Нету! Вы можете использовать Reflection, чтобы сделать это:
$r = new ReflectionClass('FRUIT');
$constants = $r->getConstants();
Больше информации здесь