Home  >  Q&A  >  body text

PHP如何处理同重复参数名的参数

// http://example.com?p1=v1&p2=v2&p3=v3&p1=v4&p2=v5
var_dump($_GET['p1']; // output v1

这样测试出来只得到v1,开始我以为后来的参数会覆盖前边的参数,结果不是,而且也没有什么错误。
求解释原理

PHPzPHPz2749 days ago1243

reply all(4)I'll reply

  • 数据分析师

    数据分析师2017-10-01 01:21:56

    How does PHP handle parameters with the same repeated parameter name-PHP Chinese website Q&A-How does PHP handle parameters with the same repeated parameter name-PHP Chinese website Q&A

    Look around and learn.

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 13:15:00

    PHP的又一2B发明:参数后加[]

    <?php
    $str = "a[]=1&a[]=2";
    parse_str($str, $arr);
    print_r($arr);

    query string可以用parse_url()获取

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 13:15:00

    我得到的结果与你相反

    <?php
    var_export( $_GET );

    haoduo.sinaapp.com/app/test.php?a=1&a=2

    结果
    array (
    'a' => '2',
    )

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 13:15:00

    你可以使用 $_SERVER["QUERY_STRING"] 获取整个query_string,然后自己写个简单的代码来解析,类似于

    $arr_kev = explode('&', $_SERVER['QUERY_STRING']);
    $get = array();
    foreach ($arr_kev as $kev)
    {
        list($key, $val) = explode('=', $kev);
        $get[$key][] = $val;
    }

    这样就保留了所有信息。

    reply
    0
  • Cancelreply