如何在heredoc內使用define?例如:define and heredoc
define('PREFIX', '/holiday');
$body = <<<EOD
<img src="PREFIX/images/hello.png" /> // This doesn't work.
EOD;
如何在heredoc內使用define?例如:define and heredoc
define('PREFIX', '/holiday');
$body = <<<EOD
<img src="PREFIX/images/hello.png" /> // This doesn't work.
EOD;
從the documentation regarding strings
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;
謝謝!添加一點注意:'$ const/images/hello.png'也可以。 – moey
本示例中不需要大括號。 – wlf
你也可以使用'$ consts = get_defined_constants();'得到所有的定義,然後用'{$ consts ['PREFIX']}'進行訪問。 – PhoneixS