我正在查看使用php的网站,我看到a[]=val1
而不是b=val2
。我的问题是为什么网址中有括号?什么类型的代码会产生这种效果?
答案 0 :(得分:2)
括号位于网址中,表示val1
将被分配到数组a
中的下一个位置。如果您对括号的空白部分感到困惑,请查看how php arrays work。
对于创建这样一个url的代码,它可以是编码器或其他脚本的显式定义,也可以通过使用method="get"
属性的表单以某种方式创建。
要创建它,您可以将数组定义为输入字段的name
,如下所示:
<form method="get">
<input name="a[]" ... />
<input name="a[]" ... />
<input name="a[]" ... />
</form>
或者您可以使用此网址创建一个链接(a
标记):
<a href="foo.php?a[]=val1&a[]=val2&a[]=val3">Click Me!</a>
要使用PHP解析此URL,您可以使用$_GET
变量从url中检索值:
<?php
$a = $_GET['a'];
$val1 = $a[0];
$val2 = $a[1];
$val3 = $a[2];
...
print_r($a);
?>
print_r($a)
语句的打印输出如下所示(如果您将其打包在<pre>
标记中):
Array (
a => Array (
0 => 'val1',
1 => 'val2',
2 => 'val3'
)
)
答案 1 :(得分:1)
这是将新元素附加到数组的语法。每个变量前面应该有美元符号:
$a[] = $val1;
答案 2 :(得分:1)
您之前会看到页面上的输入字段,例如:
<input name="color[]" type="checkbox" value="red">
<input name="color[]" type="checkbox" value="blue">
<input name="color[]" type="checkbox" value="green">
其中用户可以选择多个响应,并且它们将在操作页面的$ _GET(和URL)中的$ color数组中可用,如您所描述的那样显示。
(类似地,它也可以是作为不基于用户输入的数组传递的隐藏变量。)