访问<<< HTML in php中的定义变量

tft*_*ftd 7 php constants heredoc

我试图弄清楚如何<<<HTML在php中使用时使用已定义的变量.这是我想要实现的一个例子:

<?php
define('TEST','This is a test');
echo <<<HTML
Defined: {TEST}
HTML;
?>
Run Code Online (Sandbox Code Playgroud)

获取定义的"TEST"的适当方法是<<<HTML什么?

编辑:
我做了一个小测试来检查哪一种方法最快.对于我的测试,我在heredoc中使用了20个变量.以下是使用不同方法(以秒为单位)发生的事情:
访问<<< HTML in php中的定义变量似乎是最慢的方法 - 0.00216103.
访问<<< HTML in php中的定义变量更快 - 0.00073290.
访问<<< HTML in php中的定义变量甚至更快 - 0.00052595.
访问<<< HTML in php中的定义变量是最快的 - 0.00011110.

希望这有助于别人:)

Jef*_*ker 12

我不害怕,但是......

define('TEST','This is a test');

var $defined = TEST;

echo <<<HTML
Defined: {$defined}
HTML;
Run Code Online (Sandbox Code Playgroud)

至少在我知道的情况下,没有直接在该上下文中使用定义值的方法,您需要使用变量.

  • 获得投票 - 纯粹是因为它的权利.heredoc语法只能评估变量 - 您必须为变量分配一个常量以将其插入到字符串中.也许看一下另一种弦乐建筑技术? (2认同)

Sur*_*ams 6

这是我在php手册中的注释中找到的方法:http://www.php.net/manual/en/function.define.php#100449

这有点令人费解,但它应该有效.

<?php
define('TEST','This is a test');

$cst = 'cst';
function cst($constant){
    return $constant;
}

echo <<<HTML
Defined: {$cst(TEST)}
HTML;
Run Code Online (Sandbox Code Playgroud)

如果要包含多个已定义的CONSTANTS,这比手动将大量变量分配给常量值要好.