Констант класса PHP Array Cast - PullRequest
1 голос
/ 22 марта 2012

Для имитации перечислений в PHP мне нравится использовать константы классов.

например,

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

У меня есть случай, когда я хотел бы привести этот класс к массиву для заполнения выборасписок.Однако, поскольку константы класса ведут себя статически, приведение не работает, например, (array)(new FRUIT()); и метод get_object_vars().

Какой лучший способ обойти это?Нужно ли создавать внутреннюю функцию для итерации констант и возврата массива?

1 Ответ

7 голосов
/ 22 марта 2012

Нужно ли создавать внутреннюю функцию для итерации констант и возврата массива?

Неа! Вы можете использовать Reflection, чтобы сделать это:

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

Подробнее здесь

...