为什么在双引号PHP echo字符串中双斜杠注释会产生JS错误?

时间:2018-06-11 13:52:44

标签: javascript php html

所以...我有一种奇怪的编码风格 - 这是真的(参见示例),但是当我使用双斜杠注释而不是多行/ * * /注释时JS为什么会生成错误。

这是我的PHP代码,里面有JS函数。它只是(不)工作的例子。您可以通过复制和粘贴来尝试:

<?php
echo "<script>";
echo "function OnTxtChange( ) {";
echo "  var i = parseInt((document.getElementsByName('inp'))[0].value);";
echo " // Increment input with 1";
echo "  document.getElementsByName('out').item(0).innerHTML = ++i;";
echo "}";
echo "</script>";
echo "<input style='width:3em;' type='number' value=1 name='inp' onchange='OnTxtChange( )'>";
echo "<p name='out'>2</p>";
?>

双引号字符串中的双斜杠注释:

echo " // Increment input with 1";

生成JS错误:

Uncaught SyntaxError: Unexpected end of input

当我使用多行/ * * /注释时,没有错误:

echo " /* Increment input with 1*/";

为什么?

1 个答案:

答案 0 :(得分:2)

使用

的评论
//

运营商需要在一个单独的行中。你没有使用换行符,因此在第一次出现这样的评论之后,其他一切都会被评论,而不是结束这些功能。您需要使用

的换行符
\n

打破行并获得预期的代码。