如何在PHP' Heredoc中转义变量名?

时间:2014-11-29 15:57:04

标签: php string escaping heredoc

我有一个变量$foo,其中包含一些id,我想在PHP中的Heredoc字符串中使用它,如下所示:

$text = <<<TEXT
  <div id="$foo_bar"></div>
TEXT;

明显的问题是PHP将Heredoc中的变量解析为$foo_bar,当然,它并不存在。我想要的是解析$foo变量和&#34; _bar&#34;应被视为常规文本。

是否可以使用某种转义字符,或者无法实现?

P.S。:是的,我知道我可以使用带引号的字符串而不是Heredoc,但我必须使用Heredoc(我有大量的文本和代码,带引号等)。

2 个答案:

答案 0 :(得分:2)

在变量周围加上花括号,就像在带引号的字符串中一样。

$text = <<<TEXT
  <div id="{$foo}_bar"></div>
TEXT;

答案 1 :(得分:1)

请改用此代码强制使用$foo

$text = <<<TEXT
  <div id="{$foo}_bar"></div>
TEXT;

卷曲括号强制内容为变量。

或者,您可以在HEREDOC之前附上“_bar”。

$foo = $foo . "_bar";
$text = <<<TEXT
  <div id="$foo"></div>
TEXT;