Php 本案中评估的目的

Php 本案中评估的目的,php,javascript,eval,Php,Javascript,Eval,我正在研究一个定制框架。我找到了一个类似的代码 <script type="text/javascript"> <?php echo "ABC.Variables.Objects = eval('(" . $Objects . ")');"; ?> </script> ABC.Variables.Objects = eval('({"success":true,"results":11})'); 在这种情况下使用EVAL的主要目的是什么?是否正在

我正在研究一个定制框架。我找到了一个类似的代码

<script type="text/javascript"> 
<?php
    echo "ABC.Variables.Objects = eval('(" . $Objects . ")');";
?>
</script>
ABC.Variables.Objects = eval('({"success":true,"results":11})');

在这种情况下使用EVAL的主要目的是什么?是否正在服务器端的客户端工作?

eval
此处用于将json格式字符串转换为javascript对象。正确的方法是为旧浏览器使用
JSON.parse(str)
或一些JSON解析函数

但是在这种情况下,您不需要使用
eval
,甚至不需要使用
JSON.parse()

您只需执行以下操作:

<script type="text/javascript">
  // of course $Objects needs to be a valid json string, eg the result of json_encode 
  ABC.Variables.Objects = <?php echo $Objects ?>;
</script>

不需要eval。

eval
此处用于将json格式字符串转换为javascript对象。正确的方法是为旧浏览器使用
JSON.parse(str)
或一些JSON解析函数

但是在这种情况下,您不需要使用
eval
,甚至不需要使用
JSON.parse()

您只需执行以下操作:

<script type="text/javascript">
  // of course $Objects needs to be a valid json string, eg the result of json_encode 
  ABC.Variables.Objects = <?php echo $Objects ?>;
</script>

不需要eval。

PHP已输出JavaScript代码,由客户端浏览器执行。在JavaScript(不是PHP)中,调用
eval()
将最初存储在PHP变量
$Objects
中的JSON字符串解析为JavaScript对象

它实际上应该调用
JSON.parse()
,而不是
eval()

最好是:

echo "ABC.Variables.Objects = JSON.parse('" . $Objects . "');";

PHP已输出JavaScript代码,由客户端浏览器执行。在JavaScript(不是PHP)中,调用
eval()
将最初存储在PHP变量
$Objects
中的JSON字符串解析为JavaScript对象

它实际上应该调用
JSON.parse()
,而不是
eval()

最好是:

echo "ABC.Variables.Objects = JSON.parse('" . $Objects . "');";

这里,eval函数将一个json字符串转换为json对象。

这里,eval函数将一个json字符串转换为json对象。

如果eval()是答案,那么您几乎肯定问错了问题。在这种情况下,使用
eval
没有任何意义。PHP代码可能是从使用AJAX的Javascript随意移植而来的?但即便如此,评估也不是一条可行之路。一般来说,应该避免使用
eval
,因为从稳定性和安全性的角度来看,这都是危险的。如果eval()是答案,那么几乎可以肯定你问的问题是错误的。在这种情况下,使用
eval
没有任何意义。PHP代码可能是从使用AJAX的Javascript随意移植而来的?但即便如此,评估也不是一条可行之路。一般来说,
eval
应该避免,因为从稳定性和安全性的角度来看,它都是危险的。这不是OP所要求的。@MadaraUchiha那么它应该是什么呢?我的观点是,
eval
不是必需的,在这种情况下你甚至不需要
JSON.parse
。@xdazz-假设我想把它转换成一个javascript对象,然后转换成一个字符串,那么我可以使用它吗JSON.parse???@hacker不,你不需要,直接回显它。这不是OP的要求。@MadaraUchiha那么它应该是什么呢?我的观点是,
eval
不是必需的,在这种情况下,你甚至不需要
JSON.parse
。@xdazz-假设我想将它转换成一个javascript对象,然后转换成一个字符串,那么我可以使用它吗JSON.parse???@hacker不,你不需要,直接回显它。如果
$Objects
已经是一个JSON格式的字符串,无需使用
JSON.parse()
。如果您可以使用
vara={“a”:1}为什么需要执行
var a=JSON.parse('{“a”:1}')
如果
$Objects
已经是json格式的字符串,则无需使用
json.parse()
。如果您可以使用
vara={“a”:1}为什么需要执行
var a=JSON.parse('{“a”:1}')