我想知道用户访问了哪些 URL。例如,如果用户访问:
index.php?注册
它会回显“1”。
if (isset($_GET))
{
switch ($_GET)
{
case "register":
echo 1;
break;
}
}
但它什么也没做,为什么?如何获得第一个 GET 元素的名称?
$_GET
是一个数组。您需要将该 switch 语句放在 foreach 循环中:
foreach ($_GET as $k => $v) {
switch ($k) {
case 'register':
echo 1;
break;
}
}
此外,$_GET
超全局总是设置的——不需要if (isset($_GET)) {
您可以使用array_keys()
来获取每个 $_GET 的密钥,然后使用0 index
来确定您想要对第一个密钥执行的操作:
if($_GET){
$keys = array_keys($_GET);
switch ($keys[0]){
case "register":
echo 1;
break;
}
}
$_GET
是一个超全局数组。它始终是设置的,并且始终是一个数组。
如果您知道这register
将始终是第一个 GET 元素,那么您可以这样做:
reset($_GET);
switch (key($_GET)){
case "register":
echo 1;
break;
}
文档key()
: http: //php.net/key
$_GET 是一个关联数组,所以它是由key=value
元素构成的
您可以使用此 URL:index.php?page=register
使用此代码:
if (isset($_GET['page']))
{
switch ($_GET['page'])
{
case "register":
echo 1;
break;
}
}
或使用此 URLindex.php?register
使用此代码:
foreach ($_GET as $key => $value) {
switch ($key) {
case 'register':
echo 1;
break;
}
}