我实际上对PHP或JQuery并不陌生。这使得这个错误更加奇怪。请考虑这两个代码示例。(由于我在这篇文章中用了大约五分钟的时间将它们拼凑在一起,所以它们简单而混乱 - 但要说明这一点。
<?php
print<<<HERE
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1 /jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery- ui.min.js"></script>
</head>
<p>Error show</p>
<button id="targetbutton" style="height: 60px width: 100px">mouse in</button>
<script>
$("#targetbutton").mouseover(function()
{$("p").css("color", "red")
});
</script>
HERE;
?>
和
<?php
print<<<HERE
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
</head>
<p>Error show</p>
<button id="targetbutton" style="height: 60px width: 100px">mouse in</button>
<script>
/*
$("#targetbutton").mouseover(function()
{$("p").css("color","red")
});
*/
</script>
HERE;
?>
这两个代码块都会产生此错误:解析错误:语法错误,意外的"(",期望变量 (T_VARIABLE( 或"$"...在第 11 行(实际上第二个说...第 12 行 - 显然(
此代码有效:
<?php
print<<<HERE
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
</head>
<p>Error show</p>
<button id="targetbutton" style="height: 60px width: 100px">mouse in</button>
<script>
$("#targetbutton").mouseover(function() {
$("p").css("color", "red")
});
</script>
HERE;
?>
正如我所提到的,我把这个有点混乱和简单的例子放在一起来说明一个观点。但是,我第一次在我正在创建的格式良好的网站中看到错误 - 因此代码美感 - 或缺乏这样的 - 似乎不是问题。因此,出现了三个问题: 1. 为什么 PHP 会抛出关于非 PHP 代码的错误(第 11 行在脚本标签内(? 2. 为什么 PHP 会抛出关于注释掉的代码的错误? 3.为什么移动卷曲支架会突然解决所有问题? 自从我让它工作以来,这个问题是认识论的,但很有趣。
在 HEREDOC(和双引号字符串(中,{$
引入了内插变量或表达式。
如果你想把东西转储到浏览器,要么完全退出PHP模式,要么使用NOWDOC:
print <<<'HERE'
Note single-quotes around keyword
You can now have anything you like here and PHP won't try
to mess with it.
HERE;