Как удобно достать 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
180 +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 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир