下面的代码不起作用,我已经用斜杠转义了单引号和双引号,但在萤火虫中出现错误“未终止的字符串文字”。
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\"":
case "\'":
animateKey(40);
break;
}
}';
下面的代码不起作用,我已经用斜杠转义了单引号和双引号,但在萤火虫中出现错误“未终止的字符串文字”。
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\"":
case "\'":
animateKey(40);
break;
}
}';
如果你必须在 PHP 中构建这个字符串,我推荐 HEREDOC
$js = <<<_JS
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
_JS;
echo $js;
或者,完全退出 PHP
?>
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
<?php
您的代码在 Javascript 中将如下所示:
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case """:
case "'":
animateKey(40);
break;
}}
这不是有效的 JS。您必须两次转义引号,一次用于 php,一次用于 Javascript。
case "\\\"":
case "\'":
PHP 字符串中的反斜杠实际上仍用作转义序列,因此在生成的 HTML 中不会发出反斜杠。您还需要转义斜线:
echo '
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case "\\"":
case "\'":
animateKey(40);
break;
}
}';
您还可以使用 HEREDOC,甚至更好的是NOWDOC来减少转义的需要。
echo <<<'EOT'
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
EOT;
或者,如果这只是静态 HTML,为什么要使用 PHP 发出它呢?只需将其<?php ?>
作为普通标记放在标签之外。
<?php
// code
?>
function AnimateButtonPress(keyChar) {
switch (keyChar) {
case '"':
case "'":
animateKey(40);
break;
}
}
<?php
// more code
?>