下面是我在运行php程序时收到的错误。
注意:未定义的变量:输出 C:''xampp''htdocs''captchahtml''AdminAddPage.php 在第 147 行
注意:未定义的变量:输出 C:''xampp''htdocs''captchahtml''AdminAddPage.php 在第 148 行
注意:未定义的变量:输出 C:''xampp''htdocs''captchahtml''AdminAddPage.php 在第 156 行
"导致"错误的行是Javascript/Jquery代码,如下所示,
<?php
...
...
echo<<<ADMINADDCAPTCHA_HEAD
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./Admin_Add_2.css">
<title>Admin Main Page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
.....
.....
Line 147: var $output = $('#output');
Line 148: $output.empty();
Line 156: $output.append(a);
......
......
</script>
</head>
<body>
...
...
?>
我相信 php 正试图在这些行的位置放置一个变量。有没有办法解决这个问题。第 147 行是第一次出现"$..."。谢谢大家:)
这是使用
HEREDOC 语法从 PHP 中回显出来的客户端代码,使用 HEREDOC 语法,PHP 变量可以在输出中插值。
通常的做法是在 JQuery 变量前面加上 $
符号,这是 JQuery 的简写,$
但是 PHP 也使用它来表示变量的开头。这意味着 PHP 解释器正在拾取var $output
,并试图回显变量$output
的值 - 该值不存在,因此存在未定义的变量错误。
如果你想使用 HEREDOC 块,你可以通过转义任何$
符号来解决这个问题,你想从字面上被视为$
符号,例如:
var '$output = '$('#output');
'$output.empty();
'$output.append(a);
或者,你可以退出PHP解析(?> ... stuff .. <?php
)或使用单个带引号的字符串,而不是使用HEREDOC。