我正在尝试将3参数传递给脚本,其中第3个参数$_GET['value3']
应该是数组
$_GET['value1']
$_GET['value2']
$_GET['value3'] //an array of items
我正在这样调用脚本:(注意我的
value3
语法,我不确定它是正确的)http://localhost/test.php?value1=test1&value2=test2&value3=[the, array, values]
然后,我使用一个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;
}
但我收到错误
Invalid argument supplied for foreach()
我不确定我的方法是否正确。能否澄清一下您将如何做某事
最佳答案
没有诸如“将数组作为URL参数传递”之类的东西(或表单值,因为这是同一回事)。这些是字符串,发生在它们上面的任何事情都是应用程序服务器内置的魔术,因此它是不可移植的。
PHP碰巧支持&value3[]=the&value3[]=array&value3[]=values
表示法,自动为您创建$_GET['value3']
作为数组,但这对PHP来说是特殊的,不一定在其他地方有效。
您也可以直接使用更干净的URL,例如value3=the,array,values
,然后在PHP脚本中使用explode(',', $_GET['value3'])
创建数组。当然,这意味着分隔符char不能成为值的一部分。
要通过HTTP明确传输结构化数据,请使用已为此目的而设计的格式(即JSON),然后在PHP端使用json_decode()
。
关于php - $ _GET输入参数,它是一个数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2909138/