【问题标题】:How to pass an object in query string in PHP如何在 PHP 中的查询字符串中传递对象
【发布时间】:2017-10-31 06:31:03
【问题描述】:

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

但是我找不到关于如何将 object(或 key=>value 关联数组 - 相同的东西)作为查询字符串发送的直接答案。

目前,但是我这样做是:

字符串

?foo=bar&hello=world

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

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

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

这是处理它的最佳方式,还是有其他标准可以使用 PHP 在查询字符串中发送 object

【问题讨论】:

  • ?object[foo]=bar&amp;object[hello]=world
  • @AbraCadaver 谢谢,这似乎确实有效。如何发送一个数组作为values 之一,如?object[foo]=1&amp;object[foo]=2。这将是最后需要的澄清。谢谢!
  • object[foo][]=1&amp;object[foo][]=2

标签: php arrays get associative-array


【解决方案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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2020-11-23
    • 2017-07-31
    • 1970-01-01
    • 2014-04-11
    • 2020-11-29
    相关资源
    最近更新 更多