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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章