获取当前$ _GET变量的名称

时间:2013-07-17 13:55:30

标签: php arrays get

我想知道用户访问了什么网址。例如,如果用户访问过:

  

的index.php?注册

它会回显'1'。

if (isset($_GET))
{
    switch ($_GET)
    {
        case "register":
            echo 1;
        break;
    }
}

但它没有做任何事情,为什么?你如何得到第一个GET元素的名称?

4 个答案:

答案 0 :(得分:4)

$_GET是一个数组。您需要将该switch语句放在foreach循环中:

foreach ($_GET as $k => $v) {
    switch ($k) {
        case 'register':
            echo 1;
        break;
    }
}

此外,$_GET超级全球总是设置 - 不需要if (isset($_GET)) {

答案 1 :(得分:3)

您可以使用array_keys()获取每个$ _GET的密钥,然后使用0 index确定您要对第一个密钥执行的操作:

if($_GET){
    $keys = array_keys($_GET);
    switch ($keys[0]){
        case "register":
            echo 1;
        break;
    }   
}

答案 2 :(得分:1)

$_GET是一个超全局数组。它总是被设置,并且总是一个数组。

如果你知道register 总是是第一个GET元素,那么你可以这样做:

reset($_GET);
switch (key($_GET)){
    case "register":
        echo 1;
    break;
}

key()的文档:http://php.net/key

答案 3 :(得分:-3)

$ _ GET是一个关联数组,所以它的结构是key=value个元素

您可以使用此网址:index.php?page=register,并使用以下代码:

if (isset($_GET['page']))
{
    switch ($_GET['page'])
    {
        case "register":
            echo 1;
        break;
    }
}

或使用此网址index.php?register使用以下代码:

foreach ($_GET as $key => $value) {
    switch ($key) {
        case 'register':
            echo 1;
        break;
    }
}