2011-04-26 298 views
8

我想在EOT中插入一个变量但不工作(我是PHP新手,也许这就是为什么)。这段代码是脚本的一部分,当我单独回显$username时,它显示真实姓名,但是当我把它放在EOT中时,显示纯文本不是真实名称。PHP在EOT中插入变量

我在做什么错?

$username=getUsername($ID); 

echo <<<'EOT' 

Some HTML code goes here 

Hello $username, welcome back! 

Some HTML code goes here 

EOT; 

回答

21

你必须离开这里了单引号:

echo <<<'EOT' 

这表示'nowdoc'变种,它不进行内插变量。

但你需要原始"heredoc"语法不带引号:

echo <<<EOT 
+0

是的,现在是工作..感谢了很多解释,我的象形文字:) – 2011-04-26 00:19:19

+4

哦,顺便说一句,你不*必须*将其命名为'EOT'。您可以使用任何您喜欢的分隔符字符串。使用'echo <<< END'或'echo <<< HTML'(在文本块之后使用'HTML;')也很常见。 – mario 2011-04-26 00:21:39

+0

请选择此作为解决方案,为此清楚。谢谢。 – Homer6 2011-04-26 00:33:39

7
$variable = 'text'; 
echo <<<EOT 
Some {$variable} here 
EOT; 
+0

您能否添加一些解释您为什么认为这是解决方案的词? – Trinimon 2013-04-08 20:28:52

+2

我碰巧找到同样的问题,这就是我解决它的方法。在变量周围放置{}可以替换var名称作为其值。 – s4nch3z 2013-04-26 03:03:52