我正在尝试将3个参数传递给脚本,其中第3个参数$_GET['value3']应该是一个数组
$_GET['value1']
$_GET['value2']
$_GET['value3'] //an array of items
Run Code Online (Sandbox Code Playgroud)
我正在调用这样的脚本:(注意我的语法value3,我不确定它是否正确)
http://localhost/test.php?value1=test1&value2=test2&value3=[the, array, values]
Run Code Online (Sandbox Code Playgroud)
然后我使用foreach希望循环遍历第三个参数value3,即数组
//process the first input $_GET['value1']
//process the second input $_GET['value2']
//process the third input $_GET['value3'] which is the array
foreach($_GET['value3'] as $arrayitem){
echo $arrayitem;
}
Run Code Online (Sandbox Code Playgroud)
但我得到了错误 Invalid argument supplied for foreach()
我不确定我的方法是否正确.有些人可以澄清你是如何去做那种事情的
尝试
http://localhost/test.php?value1=test1&value2=test2&value3[]=the&value3[]=array&value3[]=values
Run Code Online (Sandbox Code Playgroud)
没有"将数组作为URL参数传递"(或表单值,因为这是相同的事情).这些是字符串,除此之外发生的任何事情都是构建到应用程序服务器中的魔法,因此它是不可移植的.
PHP恰好支持为您&value3[]=the&value3[]=array&value3[]=values自动创建$_GET['value3']数组的符号,但这对PHP来说很特殊,并不一定适用于其他地方.
您也可以直截了当地获取更清晰的URL,如下所示:value3=the,array,values然后explode(',', $_GET['value3'])在PHP脚本中使用以创建数组.当然,这意味着您的分隔符char不能是值的一部分.
要通过HTTP明确地传输结构化数据,请使用为此目的而制作的格式(即:JSON),然后json_decode()在PHP端使用.