Констант класса 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();

Больше информации здесь

Другие вопросы по тегам