Инкапсуляция констант с динамическими значениями в классе? - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно назначить функции для констант, чтобы это не сработало:

class Config
{
    const foo = strtoupper('bar');
}

Поскольку мне нужно инкапсулировать константу в классе, альтернатива define('foo', strtoupper('bar')); не подойдет.

Мой единственный вариант - использовать публичные переменные? Например.,

class Config
{
    public $foo;

    public function __construct()
    {
        $this->foo = strtoupper('bar');
    }

}

1 Ответ

1 голос
/ 28 мая 2019

В PHP нет способа динамически определять константы класса, но вы можете использовать статические методы для достижения того же результата:

class Config
{
    public static function FOO()
    {
        return strtoupper('bar');
    }

}

// Usage:
$value = Config::FOO()
...