определить и heredoc

Как вы используете определение в heredoc ? Например:

define('PREFIX', '/holiday'); $body = <<<EOD <img src="PREFIX/images/hello.png" /> // This doesn't work. EOD; 

взятые из документации по строкам

 DEFINE('PREFIX','/holiday'); $const = PREFIX; echo <<<EOD <img src="{$const}/images/hello.png" /> EOD; 

если у вас более 1 константы, использование переменной будет затруднительным. поэтому попробуйте этот метод

 define('PREFIX', '/holiday'); define('SUFFIX', '/work'); define('BLABLA', '/lorem'); define('ETC', '/ipsum'); $cname = 'constant'; // if you want to use a function in heredoc, you must save function name in variable $body = <<<EOD <img src="{$cname('PREFIX')}/images/hello.png" /> <img src="{$cname('SUFFIX')}/images/hello.png" /> <img src="{$cname('BLABLA')}/images/hello.png" /> <img src="{$cname('ETC')}/images/hello.png" /> EOD; 

http://codepad.org/lA8L2wQR

Константы, используемые в синтаксисе heredoc, не интерпретируются!

Примечание редактора: Это верно. PHP не имеет возможности распознавать константу из любой другой строки символов в блоке heredoc.

Источник