PHP在EOT中插入变量

Adr*_* M. 10 php variables

我想在EOT中插入一个变量但是不起作用(我是php新手,也许这就是原因).这段代码是脚本的一部分,当我$username单独回显它显示真实姓名时,但是当我把它放在EOT中时显示纯文本而不是真实姓名..

我究竟做错了什么?

$username=getUsername($ID);

echo <<<'EOT'

Some HTML code goes here

Hello $username, welcome back!

Some HTML code goes here

EOT;
Run Code Online (Sandbox Code Playgroud)

mar*_*rio 22

你必须在这里省略单引号:

echo <<<'EOT'
Run Code Online (Sandbox Code Playgroud)

这表示'nowdoc'变体,它不插入变量.

但是你需要没有引号的原始"heredoc"语法:

echo <<<EOT
Run Code Online (Sandbox Code Playgroud)

  • 哦,顺便说一句,你不必*命名为'EOT`.您可以使用任何您喜欢的分隔符字符串.使用`echo <<< END`或`echo <<< HTML`(在文本块之后使用`HTML;`)也很常见. (5认同)

s4n*_*h3z 9

$variable = 'text';
echo <<<EOT
Some {$variable} here
EOT;
Run Code Online (Sandbox Code Playgroud)

  • 我碰巧发现了同样的问题,这就是我解决它的方法.在变量周围放置{}会将var名称替换为其值. (2认同)