PHP:URL中的?和&有什么区别?

3

? 和 & 在 URL 中有什么区别?

例如:http://www.site.com/index.php?someVar=value&otherVar=value

2个回答

19
? 标记查询字符串的开始& 用于在查询字符串内部分隔单个变量。
因此,例如,我将修改您的示例以使其更清晰:
http://www.site.com/index.php?someVar=firstVal&otherVar=secondVal

URL中的“location”部分是从开头到但不包括?,所以它会很简单:

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

这是您的 Web 服务器将用于查找要执行的脚本。然后它将分离查询字符串(? 后面的所有内容),并将其传递给您的脚本(更准确地说,传递给 PHP)。查询字符串将包括以下内容:

someVar=firstVal&otherVar=secondVal

PHP将解析查询字符串,使用&作为变量之间的分隔符。因此,这个查询字符串将包括两个变量:someVar的值为firstVal,以及otherVar的值为secondVal

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

因此,在PHP中,如果您对这个示例使用var_dump($_GET),它会像这样:

array(2) {
  ["someVar"]=>
  string(5) "firstVal"
  ["otherVar"]=>
  string(5) "secondVal"
}

5

?表示“这里有参数”,所以它是第一个。
&表示“这里有另一个参数”,因此用于连续的值。


我喜欢那个,说得好。 - brianmearns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接