【问题标题】:Inserting variables when using HEREDOC?使用HEREDOC时插入变量?
【发布时间】:2021-05-26 05:26:22
【问题描述】:

我正在对电子邮件营销服务进行 API 调用。其中一个变量是“htmlContent”,其中包含要发送的电子邮件的 HTML。

我的代码如下所示:

$htmlContent = <<<EOT
//lots of HTML code
<p>
EOT;

$htmlContent .= $player_name;

$htmlContent .= <<<EOT
</p>
//lots more HTML code
EOT;

我正在尝试将 $player_name 变量直接插入到 &lt;p&gt;&lt;/p&gt; 标记之间。当我添加这个变量时,我的 API 调用会中断。如果我删除变量添加,它工作正常。我做错了什么?

【问题讨论】:

  • $player_name 已经设置了吗?
  • 是的,是的。在添加 HTML 模板之前,我只是将该值输出到“htmlContent”,然后我收到了带有正确变量输出的电子邮件。
  • “我的 API 调用中断”是什么意思? PHP 不知道您正在进行 API 调用,API 也不知道您的 PHP 代码是什么样的。所以暂时忘记 API,并转储出您在两个版本中生成的确切字符串。仔细比较它们 - 是否存在空格差异,或者只是 $player_name 变量中的某些内容会弄乱更广泛的格式?
  • 不,$player_name 看起来不错。为了更进一步,我将 $player_name 替换为“Test Player”以消除可变方面。即使这样也行不通。附加到包含 EOT 内容的变量是否存在某种语法问题?当我消除使用 .= 附加并一次将所有 HTML 内容放入 1 个变量时,它工作正常。
  • 澄清一下,当我说“API 调用中断”时,这意味着我没有收到来自我所做的 API 调用的电子邮件。

标签: php api heredoc


【解决方案1】:

我发现我什至不需要打破 EOT 来输入变量,我可以直接将 {$player_name} 添加到 EOT 代码中。谁知道我把事情复杂化了……

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 2019-03-05
    • 2013-04-05
    • 1970-01-01
    • 2017-01-11
    • 2013-10-07
    • 1970-01-01
    相关资源
    最近更新 更多