Использование переменных статического classа – в heredoc

Я создал class, который упрощен:

class Labels { static public $NAMELABEL = "Name"; } 

Я успешно получил следующий код для работы:

 echo ''; echo ''; echo ""; echo ''; // the rest of the Table code not shown for brevity... echo "
" . Labels::$NAMELABEL . "
";

Когда я запускаю это, я вижу таблицу с заголовком столбца под названием « Имя», поэтому он отлично работает.

Но не внутри heredoc – я получаю «Примечание: неопределенная переменная: NAMELABEL в C: \ xampp …….. blah blah», когда я запускаю следующее:

  echo <<<_END 
 Labels::$NAMELABEL :   

_END;

Я пробовал все виды цитирования, строковый оператор concat ‘.’, Ничего не работает. Я подумал: «Ну, я получил переменные статического classа для работы в таблице HTML, почему бы и нет heredoc».

Dang Я люблю heredocs, у них странное имя и странные проблемы. Это своего рода забавный вид, который я жажду, heredocs – это праведные маленькие обезьяны-обезьяны.

Я действительно хочу использовать мои статические переменные classа здесь – есть ли какая-то комбинация кавычек / конкатенации строк, которая позволит мне встроить их в мои heredocs?

Интерполяция в heredocs работает так же, как и в двойных кавычках, поэтому вы можете использовать синтаксис фигурного скобки («сложный») .

Однако анализатор не распознает статические переменные classа (см. Предыдущую документацию). Чтобы ссылаться на статические переменные classа, вам необходимо установить их локально следующим образом:

 $label = Labels::$NAMELABEL; echo <<<_end 
 $label :   

_END;