如何在PHP中传递查询字符串中的对象

时间:2017-05-30 17:05:28

标签: php arrays get associative-array

我看到许多关于在PHP中将数组作为查询字符串传递的问题,似乎流行的方法是在key[]=foo&key[]=bar中使用括号。

但是我无法找到关于如何发送对象(或key=>value关联数组 - 与查询字符串相同)的直接答案。

目前,我这样做是:

STRING

?foo=bar&hello=world

然后在服务器端,我会这样做:

<?php
$array = array();
$array['foo']=$_GET['foo'];
$array['hello']=$_GET['hello'];
?>

当然使用$_POST时,ajax请求非常简单。您发送的任何对象都会自动序列化并且不是问题。

这是处理它的最佳方法,还是使用PHP在查询字符串中发送对象的其他标准?

1 个答案:

答案 0 :(得分:1)

您可以在表单和查询字符串中使用关联数组:

object[foo]=bar&object[hello]=world

构建URL编码:

$data['object']['foo'] = 'bar';
$data['object']['hello'] = 'world';
echo http_build_query($data);

收率:

object%5Bfoo%5D=bar&object%5Bhello%5D=world

您可以使用多个级别和/或使用动态添加的元素。通常,在文本形式中,它看起来就像一个PHP数组

object[foo][more][even more][]

或者:

object[foo][][more][even more]