如何在heredoc变量中存储PHP代码?

use*_*788 8 php

我想将以下代码存储在HEREDOC变量中:

<?php

$var = 'test';
echo $var;

?>
Run Code Online (Sandbox Code Playgroud)

像那样:

$hered = <<<HERED
<?php

$var = 'test';
echo $var;

?>
HERED;
Run Code Online (Sandbox Code Playgroud)

问题是HEREDOC的作用就像双引号""- 这意味着每个美元符号($)必须被替换为\$...

有没有办法在没有执行此类操作的情况下使用HEREDOC?

Emi*_*röm 16

就在这里.查看nowdoc语法:

$hello = 'hey';
$echo <<<'EOS'
$hello world!
EOS;
//Output: $hello world
Run Code Online (Sandbox Code Playgroud)

  • PHP 5.2在2.5年前达到了使用寿命.从那时起,对旧的PHP版本没有更多的安全更新,因此任何仍然在5.3之前运行PHP的人都应该尽快计划升级. (2认同)

sim*_*Pod 5

可以使用\以下方法完成:

echo <<<HEREDOC
<?php
    \$var = 'test';
    echo \$var;
?>
HEREDOC;
Run Code Online (Sandbox Code Playgroud)

我知道现在有 doc,但例如我当前的用例需要 heredoc,因为一些美元需要转义,有些则不需要:

$variableNotToEscape = 'this should be output';
echo <<<HEREDOC
$variableNotToEscape
\$variableNotToEscape
HEREDOC;
Run Code Online (Sandbox Code Playgroud)

哪个返回

this should be output
$variableNotToEscape
Run Code Online (Sandbox Code Playgroud)