我正在查看使用 php 的网站,但我看到a[]=val1
的不是b=val2
. 我的问题是为什么网址中有括号?什么类型的代码会产生这种效果?
问问题
226 次
3 回答
2
为什么 URL 中有括号?
括号在 url 中表示val1
将被分配到数组中的下一个位置a
。如果您对括号的空白部分感到困惑,请查看php 数组的工作原理。
什么样的代码会产生这个?
至于创建这样一个 url 的代码,它可以是编码器或其他脚本的显式定义,也可以是使用该method="get"
属性的表单以某种方式创建的。
例子:
要创建它,您可以将数组定义为name
输入字段的 ,如下所示:
<form method="get">
<input name="a[]" ... />
<input name="a[]" ... />
<input name="a[]" ... />
</form>
或者您可以a
使用此 url 创建一个链接(标签):
<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'
)
)
于 2012-07-06T23:14:07.597 回答
1
这是将新元素附加到数组的语法。每个变量前应该有美元符号:
$a[] = $val1;
于 2012-07-06T23:01:25.640 回答
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 数组中可用,如您所描述的那样显示。
(类似地,它也可以是不基于用户输入的作为数组传递的隐藏变量。)
于 2012-07-06T23:07:01.957 回答