3

what is the difference between ? and & in URLs?

e.g. http://www.site.com/index.php?someVar=value&otherVar=value

4

2 回答 2

17

?标记查询字符串的开始用于&分隔查询字符串中的各个变量

因此,例如,我将修改您的示例以使其更加清晰:

http://www.site.com/index.php?someVar=firstVal&otherVar=secondVal

URL 的“位置”部分是所有内容,但不包括?,所以它很简单:

http://www.site.com/index.php

这就是您的 Web 服务器将用来查找要执行的脚本的内容。然后它将拆分查询字符串(之后的所有内容?)并将其传递给您的脚本(或更准确地说,传递给 PHP)。查询字符串将是:

someVar=firstVal&otherVar=secondVal

然后 PHP 将解析查询字符串,使用&变量之间的分隔符。所以这个查询字符串将包含两个变量:someVarwith valuefirstValotherVarwith value secondVal

PHP会将解析查询字符串的结果存储在$_GET超级全局变量中,它只是一个关联数组,其中键是参数的名称,值当然是关联的值。

因此,在 PHP 中,如果您var_dump($_GET)使用此示例,它将如下所示:

array(2) {
  ["someVar"]=>
  string(5) "firstVal"
  ["otherVar"]=>
  string(5) "secondVal"
}
于 2013-08-16T12:17:20.793 回答
4

?意思是“参数来了”,所以它是第一个
&意思是“另一个参数来了”,所以它是连续值

于 2013-08-16T12:18:01.133 回答