我正在尝试将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/

10-11 15:43