PHP数组到javascript循环与json_encode [关闭]

Posted

技术标签:

【中文标题】PHP数组到javascript循环与json_encode [关闭]【英文标题】:PHP array to javascript loop vs json_encode [closed] 【发布时间】:2020-07-18 16:42:38 【问题描述】:

大家好,我是 laravel 开发的新手,在我的刀片中我有一个 php var $x,这是一个数组!

我的问题是什么是最好的方法以及何时应用每种方法?

我的第一个方法是以 foreach 循环为例:

 <script>
  var javascript = [];
        @foreach($x as $value)
          javascript[$loop->index] = $value;
        @endforeach
  </script>

我的第二种方法是使用@json 或 json_encode

<script>
  var javascript = @json($x);
</script>

什么方法最好??什么时候应用不同的方法?

对不起这个新手问题! 感谢您的帮助。

【问题讨论】:

这是一个广泛的问题,但 JSON 总是会更加健壮。例如,第一个代码示例中存在一个微不足道的字符串注入漏洞,无论是针对键还是值。 为什么不在控制器中执行 json_encode() 并将 JSON 传递给已设置的刀片 我认为这取决于偏好,但最好使用 json_encode 方法,因为它每次都会为您提供有效/可解析的 javascript。 Json encode会将该数组组合成json字符串,同时数组元素初始化会创建元素值,那么如何比较两种不同的值类型呢? 谢谢大家的回答 【参考方案1】:

最直接的方法是像使用 @json 一样使用 JSON。这是非常安全的,因为 JSON 语法总是生成有效的 JavaScript 表达式。

它甚至在文档中提到,Displaying Data。

您的第一个示例过于复杂,仅适用于数字索引数组,因此 PHP 的关联数组无法按预期工作。

【讨论】:

感谢您的回答

以上是关于PHP数组到javascript循环与json_encode [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在php循环中写入javascript数组

PHP 使用php循环分配的Javascript数组

传递 Javascript 数组 -> PHP

使用php循环分配的Javascript数组

Javascript从“繁”到“简”进行数组去重

带有子数组循环Javascript的数组