определить и наследовать - PullRequest
7 голосов
/ 23 ноября 2011

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

define('PREFIX', '/holiday');

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

Ответы [ 3 ]

10 голосов
/ 23 ноября 2011

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

DEFINE('PREFIX','/holiday');

$const = PREFIX;

echo <<<EOD
<img src="{$const}/images/hello.png" /> 
EOD;
6 голосов
/ 20 сентября 2012

если у вас более 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

2 голосов
/ 23 ноября 2011

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

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

Источник

...