嵌入PHP代码的Javascript语法错误

嵌入PHP代码的Javascript语法错误,php,javascript,Php,Javascript,我犯了一些愚蠢的错误,但不知道我做了什么 我试图测试将变量从PHP传递到Javascript,如果它是一个数组,json\u encodeit 我的文件是一个PHP文件ie.PHP php代码行似乎导致了我添加到原始php中的错误,它工作正常 <?php $php_var = 'lol'; $php_array = array (); $php_array["lady"] = "mary"; $php_array["gent"] = "joseph"; echo is_array($ph

我犯了一些愚蠢的错误,但不知道我做了什么

我试图测试将变量从PHP传递到Javascript,如果它是一个数组,
json\u encode
it

我的文件是一个PHP文件ie.PHP

php代码行似乎导致了我添加到原始php中的错误,它工作正常

<?php

$php_var = 'lol';
$php_array = array ();
$php_array["lady"] = "mary";
$php_array["gent"] = "joseph";
echo is_array($php_array) ? json_encode($php_array) : $php_array;  // same as faulty line in javascript
?>

<html>
<body>

<script type="text/javascript" charset="utf-8">

var php_var = "<?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo $php_var;}; ?>";
document.write(php_var + ' ifElse<br>');

// THE FOLLOWING LINE GIVES  Uncaught SyntaxError: Unexpected identifier 
var php_var2 = "<?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>";

document.write (php_var2 + ' EitherOR<br>');

alert(php_var + php_array);

</script>
<h1> Testing Jscript variables</h1>
</body>
</html>

var php_var=”“;
编写(php_var+'ifElse
'); //下一行给出了未捕获的SyntaxError:意外标识符 var php_var2=“”; document.write(php_var2+'EitherOR
'); 警报(php_var+php_数组); 测试Jscript变量
试试这段代码。如下图所示,更换两条管路

var php_var = <?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo $php_var;}; ?>;

var php_var2 = <?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>;
var php_var=;
var php_var2=;
我就是这样做的

<?php

$php_var = 'lol';
$php_array = array ();
$php_array["lady"] = "mary";
$php_array["gent"] = "joseph";
?>

<html>
<body>

<script type="text/javascript" charset="utf-8">

var php_var = <?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo '"' . $php_var . '"';} ?>;
document.write(php_var + ' ifElse<br>');

// THE FOLLOWING LINE GIVES  Uncaught SyntaxError: Unexpected identifier
var php_var2 = <?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>;

document.write (php_var2 + ' EitherOR<br>');

alert(php_var);

</script>
<h1> Testing Jscript variables</h1>
</body>
</html>

var php_var=;
编写(php_var+'ifElse
'); //下一行给出了未捕获的SyntaxError:意外标识符 var php_var2=; document.write(php_var2+'EitherOR
'); 警报(php_var); 测试Jscript变量

不知道为什么在Javascript不知道php_数组时尝试发出警报。除非输出字符串,否则也不需要引号。如果在对象周围加引号,Javascript会认为它是字符串。

如您所指定,错误位于:

var php_var2=”“

错误可能是由于在Javascript中使用双引号
(“”)
使用单引号
(“”)

这可能会解决您的错误:
var php_var2=''

或者可以使用
eval()
从JSON字符串直接创建Javascript
对象


JSON首先包含双引号,这会破坏JS。我想这是因为JSON字符串中有引号。删除周围的引号。什么错误&哪一行?伙计们,他在源代码中指定了它。//下面一行给出了未捕获的语法错误:意外标识符
@h2ooooo true,我忽略了它,尽管它仍然是。。。在源代码中发布错误,但在文本中未提及。感谢所有的评论/答案-单引号解决了此问题。我学到了更多关于PHP和Javascript接口的知识。当我尝试在没有引号的情况下使用它时,它给出了以下
uncaughtreferenceerror:lol未定义
当我从外部大括号中删除引号时:var PHP_var2=;JS似乎很高兴——它只是抱怨php_数组没有定义,这很公平,因为就JS而言它没有定义。