【问题标题】:PHP array to javascript loop vs json_encode [closed]PHP数组到javascript循环与json_encode [关闭]
【发布时间】: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字符串,同时数组元素初始化会创建元素值,那么如何比较两种不同的值类型呢?
  • 谢谢大家的回答

标签: javascript php jquery arrays laravel


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2012-11-18
  • 1970-01-01
  • 2017-02-19
  • 2017-08-26
相关资源
最近更新 更多