当前位置: 首页 > 面试题库 >

如何通过$ _GET在php中传递数组?

西门鹏程
2023-03-14
问题内容

如何通过$ _GET将数组类型的一个或多个变量传递给另一页?

我总是以以下形式传递变量值 ?a=1&b=2&c=3

那传球a=[1,2,3]呢?

我是否需要编写一个for循环并附加所有值?

谢谢


问题答案:

您可以使用[]语法通过_GET传递数组:

?a[]=1&a[]=2&a[]=3

PHP理解此语法,因此$_GET['a']等于array(1, 2, 3)

您还可以指定键:

?a[42]=1&a[foo]=2&a[bar]=3

多维数组也可以工作:

?a[42][b][c]=1&a[foo]=2

http_build_query() 自动执行此操作:

http_build_query(array('a' => array(1, 2, 3))) // "a[]=1&a[]=2&a[]=3"

http_build_query(array(
    'a' => array(
        'foo' => 'bar',
        'bar' => array(1, 2, 3),
     )
)); // "a[foo]=bar&a[bar][]=1&a[bar][]=2&a[bar][]=3"

一种替代方法是传递json编码的数组:

?a=[1,2,3]

您可以解析ajson_decode

$a = json_decode($_GET['a']); // array(1, 2, 3)

并再次使用json_encode对其进行编码:

json_encode(array(1, 2, 3)); // "[1,2,3]"

切勿serialize()为此目的使用。序列化允许序列化对象,并且有使它们执行代码的方法。因此,您永远不要反序列化不受信任的字符串。



 类似资料:
  • 问题内容: 我想知道在您仅读取变量时是否将其作为按引用传递的优良作法,还是应始终将其作为值传递。 引用传递示例: 传递值的示例: 哪个更好 ?例如,如果我要循环运行1000次? 循环示例: 问题答案: 如果您打算传递一个 值 (因此该函数不会对其进行修改) ,则没有理由通过引用传递它:这只会使您的代码更难以理解,因为人们会认为“ 此函数可以修改我将要修改的内容。传递给它-哦,它没有修改? ” 在您

  • 问题内容: 假设我们通常通过 我们如何在linux命令提示符下执行相同的操作? 但是如何传递$ _GET变量呢?也许像php -e index.php –a 1 –b 2 –c 3之类的东西?怀疑会起作用。 谢谢! 问题答案: 通常,为了将参数传递给命令行脚本,您将使用全局变量或getopt: $ _GET引用HTTP GET方法参数,该参数在命令行中不可用,因为它们需要Web服务器来填充。 如果

  • 问题内容: 在PHP 5中,是否需要使用修饰符通过引用传递?例如, 在PHP4中,您需要使用修饰符在进行更改后保持引用,但是我对已阅读的有关PHP5自动使用传递引用的主题感到困惑,除非明确克隆对象。 在PHP5中,是否 需要通过修饰符来通过引用传递所有类型的对象(变量,类,数组等)? 问题答案: 您是否需要使用&修饰符来传递引用? 从技术上/意义上讲,即使有对象,答案也是 肯定的 。这是因为有两种

  • 问题内容: 我有以下代码: 有人可以解释为什么输出是:零一二二。 摘自zend认证学习指南。 问题答案: 因为在第二个循环中,仍然是对最后一个数组项的引用,所以每次都将其覆盖。 您可以看到这样的内容: 如您所见,最后一个数组项采用当前循环值:“零”,“一个”,“两个”,然后就是“两个” …:)

  • 问题内容: 是否可以将值作为数组输入? 如果我尝试使用发送链接,而我想在php端使用,那么该值如何成为数组?因为现在正在返回。它是标题链接中的最后一个ID。有什么建议么? 问题答案: 在PHP中执行此操作的通常方法是输入您的URL而不是: 然后将是这些值的数组。它不是特别漂亮,但是可以直接使用。

  • 问题内容: 每当网页加载时,我都会调用PHP脚本。但是,PHP脚本需要运行一个参数(在测试脚本时通常会通过命令行传递该参数)。 页面加载时,每次运行脚本时如何传递此参数? 问题答案: 大概是在命令行中按以下方式传递参数: …然后通过脚本访问它们: 通过HTTP传递参数(通过Web访问脚本)时,您需要做的是使用查询字符串并通过$ _GET超全局变量访问它们: 转到http://yourdomain.