? 和 & 在 URL 中有什么区别?
例如:http://www.site.com/index.php?someVar=value&otherVar=value
?
标记查询字符串的开始,&
用于在查询字符串内部分隔单个变量。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"
}
?
表示“这里有参数”,所以它是第一个。
&
表示“这里有另一个参数”,因此用于连续的值。