我在服务器端的php中使用了heredoc语法来清理代码 - 我对heredoc实用程序的理解是“允许你将客户端代码发送到浏览器并避免每个浏览器端的单独回显代码声明“
我对heredoc的理解是它只是让你更容易封装你需要发送到浏览器的一大块代码,而不必在每一行都写一个明确的'echo',基本上是“Ok web server - 介于'之间<<<”并且heredoc的结束,所有这些都应该发送到浏览器。“
所以我不确定为什么我会收到以下代码的语法错误:
<?php
echo <<<_SENDITALL
<script type="text/javascript">
function foo(theArg1, theArg2, theArg3)
{
}
</script>
_SENDITALL;
?>
我的项目中到处都有heredocs,并且工作正常,所以我不明白为什么我的Netbeans IDE会因语法错误而不断标记上述内容。
例如,我使用heredoc将表单发送到浏览器。我已经在我的html表单上使用javascript进行输入验证,使用'onsubmit'和'onblur'等。
所以肯定不可能是php的想法“看到这里,如果你将hredod脚本改为浏览器,那就没关系了,但是你试图使用一些客户端javascript无法忍受' - 那不会'有意义的是html和javascript都是客户端,为什么heredoc语法会“关心”html脚本或javascript是否被发送到浏览器。
答案 0 :(得分:4)
在 echo <<<_SENDITALL
之后有一个空格,将其删除。
_SENDITALL;
之前还有一个空格。
我不确定它是否存在于原始代码中(可能来自此处的格式),也将其删除。