假设您的 HTTP 请求的格式如下:
GET /path/to/file.php?var[]=1&var[]=2
PHP 会将其填充到名为 $_GET
的数组中:array('var' => array(1, 2))
我的问题是...这是 PHP 的事情还是这种行为受 RFC 管辖? Web 可访问的 Node.js 或 Python 脚本将如何处理这个问题?
最佳答案
默认情况下,PHP 将覆盖以前的值,并且最终会得到查询字符串中找到的最后一个键:值对。但在 PHP 中,您可以使用 []
数组作为字段名 hack:
example.com?foo=bar&foo=baz&foo=qux
example.com?foo[]=bar&foo[]=baz&foo[]=qux
第 1 行生成 $_GET,如下所示:
$_GET = array(
'foo' => 'qux'
);
第 2 行生产
$_GET['array'] = array
'foo' => array('bar', 'baz', 'qux');
}
请注意,此行为是 PHP 特有的。其他语言做自己的事情。据我记得,Perl 默认情况下会将所有值保留为数组。
关于php - 有两个同名 HTTP GET 参数时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613296/