如何在PHP中将URL数组形式的参数存储为变量?
解决PHP获取GET数组参数的问题
首先看你的URL参数,address%5B0%5D解码后就是address[0],PHP会自动把这种带方括号的参数解析成数组,你之前的写法有误,正确的获取方式是:
// 直接取数组里的第0个元素 $address = $_GET['address'][0];
如果担心参数不存在导致报错,可以加上判断逻辑:
// 用null合并运算符,参数不存在时赋值为空字符串 $address = $_GET['address'][0] ?? ''; // 或者用isset做判断 if (isset($_GET['address'][0])) { $address = $_GET['address'][0]; } else { $address = ''; }
你之前的几种写法失败的原因:
$address = $_GET['address'];这个拿到的是整个数组,直接输出会显示Array,而非具体地址值,你可以用print_r($_GET['address'])查看数组结构就能明白。$address = $_GET['address%5B0%5D'];和$address = $_GET['address[0]'];这两种都不对,因为PHP已经把address[0]解析为$_GET['address']数组里的元素,$_GET中根本不存在address%5B0%5D或address[0]这两个键。
如果还是无法获取值,可检查服务器的max_input_vars配置,确保参数数量未超过限制,但这种情况极少出现,大概率还是写法问题。
内容的提问来源于stack exchange,提问作者Tatum Matlock
相关产品推荐
相关产品推荐

