Статические переменные PHP в двойных кавычках

Как я могу заставить PHP оценивать статическую переменную в двойных кавычках?

Я хочу сделать что-то вроде этого:

log("self::$CLASS $METHOD entering"); 

Я пробовал всевозможные {} комбо, чтобы получить значение переменной self :: $ CLASS, но ничего не сработало. Я в настоящее время соглашался с конкатенацией строк, но больно печатать:

 log(self::$CLASS . " $METHOD entering"); 

Related of "Статические переменные PHP в двойных кавычках"

Извините, вы не можете этого сделать. Он работает только для простых выражений. См. Здесь .

К сожалению, пока еще нет способа сделать это. Пример в одном из ответов здесь не будет работать, потому что {${self::$CLASS}} не вернет содержимое self::$CLASS , но вернет содержимое переменной с именем в self::$CLASS .

Вот пример, который не возвращает myvar , но aaa :

 $myvar = 'aaa'; self::$CLASS = 'myvar'; echo "{${self::$CLASS}}"; 

Я не знаю ответа на ваш вопрос, но вы можете показать имя и метод класса, используя магическую константу __METHOD__ .

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

И хотя это может подпасть под зонтику предварительной оптимизации или микро-оптимизации, я просто не думаю, что вы на самом деле получаете какую-то элегантность в этом примере.

Лично, если я собираюсь сделать крошечную оптимизацию того или другого, и мой выбор «быстрее» и «проще набирать» – я собираюсь выбрать «быстрее». Потому что вы только набираете его несколько раз, но он, вероятно, будет выполняться тысячи раз.

Да, это можно сделать:

 log("{${self::$CLASS}} $METHOD entering");