Я пытаюсь реализовать библиотеку журналов, которая бы выбирала текущий уровень отладки из среды, в которой работает приложение:
23 $level = $_SERVER['DEBUG_LEVEL'];
24 $handler = new StreamHandler('/var/log/php/php.log', Logger::${$level});
Когда я делаю это, код завершается с ошибкой:
A valid variable name starts with a letter or underscore,followed by any number of letters, numbers, or underscores at line 24.
Как бы я использовал определенный уровень Logger::
таким образом?
UPDATE:
Я пытался получить $level = "INFO"
и изменить ${$level}
на $$level
. Ни одно из этих изменений не помогло.
Однако, заменив строку 24 на $handler = new StreamHandler('/var/log/php/php.log', Logger::INFO);
, код скомпилируется и запустится, как ожидается.
Сама переменная объявлена здесь
PHP Version => 5.6.99-hhvm