Как удобно достать private const? Есть клас в котором описано некоторое количество приватных констант. class Test {
private const ONE = 1;
private const TWO = 2;
...
}
и соответственно есть функции для работыclass Test
{
....
public function all()
{
return [
self::ONE => 'один',
self::TWO => 'два'
]
}
public function getOne()
{
return self::ONE;
}
...
}
но вскорее этот клас может заполонить много таких констант и писать такие функции не охота каждый раз. Что можно придумать?

21 Авг 2019 в 06:59
158 +1
0
Ответы
1

В данном случае можно использовать рефлексию для получения значения приватной константы.
Вот пример кода, который позволит получить значение приватной константы из класса Test:

class Test {
private const ONE = 1;
private const TWO = 2;
}
$class = new ReflectionClass('Test');
$constants = $class->getConstants();
echo $constants['ONE']; // выводит значение приватной константы ONE
echo $constants['TWO']; // выводит значение приватной константы TWO

При использовании рефлексии необходимо учитывать, что она может снизить производительность кода. Поэтому рекомендуется использовать ее осторожно и только в случаях, когда другие способы доступа к приватным константам не подходят.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир