【问题标题】:php heredoc -- not echoing '<script type="text/javascript">'php heredoc -- 不回显 '<script type="text/javascript">'
【发布时间】:2012-02-19 13:52:23
【问题描述】:

我在服务器端 php 中使用了 heredoc 语法来清理代码——我对 heredoc 实用程序的理解是“允许您将客户端代码发送到浏览器并避免每个浏览器端的单独回显代码声明”

我对heredoc的理解是,它只是让你更容易封装你需要发送到浏览器的代码块,而不必在每一行都写一个明确的'echo',基本上是“Ok web server -- between the '

所以我不确定为什么我会收到以下代码的语法错误:

 <?php
 echo <<<_SENDITALL 
 <script type="text/javascript">
 function foo(theArg1, theArg2, theArg3)
 {
 }
 </script>
 _SENDITALL;
 ?>

我的项目中到处都有 heredocs,它们工作正常,所以我不明白为什么我的 Netbeans IDE 一直用语法错误标记上述内容。

例如,我使用 heredoc 将表单发送到浏览器。而且我有 javascript 在我的 html 表单上进行输入验证,使用 'onsubmit' 和 'onblur' 等。

所以肯定不会是 php 的想法“看这里,如果你将 html 脚本复制到浏览器就可以了,但是你尝试将一些客户端 javascript 复制到这里是行不通的”——那不会' html 和 javascript 都是客户端没有意义,为什么 heredoc 语法会“关心” html 脚本或 javascript 是否被发送到浏览器。

【问题讨论】:

  • NetBeans 可能会混淆 HEREDOC 中 PHP 函数定义的 JavaScript function() 定义,这在语法上是不正确的。你所拥有的应该可以正常工作。
  • 它可以在 PHP 引擎中工作吗?如果您确实得到了一个,请发布您的语法错误

标签: php javascript heredoc


【解决方案1】:

echo &lt;&lt;&lt;_SENDITALL后面有个空格,去掉。

_SENDITALL;之前还有一个空格。

我不确定它是否存在于原始代码中(可能来自此处的格式),也将其删除。

【讨论】:

  • +1 我已经编写了 2 个小时的代码,现在是硅谷的早上 5:30,一个掌上表情是开始我的编码日的绝佳方式。谢谢。 _SENDITALL 之前的空格;正在格式化而不是在原始代码中,但在开头的 _SENDITALL 之后有一个尾随空格。
猜你喜欢
  • 2011-10-12
  • 2011-05-13
  • 2016-12-12
  • 2017-07-25
  • 2014-01-13
  • 2020-07-21
  • 1970-01-01
  • 2020-10-17
  • 2013-02-24
相关资源
最近更新 更多