0

我想知道用户访问了哪些 URL。例如,如果用户访问:

index.php?注册

它会回显“1”。

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

但它什么也没做,为什么?如何获得第一个 GET 元素的名称?

4

4 回答 4

4

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

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

此外,$_GET超全局总是设置的——不需要if (isset($_GET)) {

于 2013-07-17T13:59:47.843 回答
3

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

if($_GET){
    $keys = array_keys($_GET);
    switch ($keys[0]){
        case "register":
            echo 1;
        break;
    }   
}
于 2013-07-17T14:06:59.240 回答
1

$_GET是一个超全局数组。它始终是设置的,并且始终是一个数组。

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

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

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

于 2013-07-17T14:04:04.367 回答
-3

$_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;
    }
}
于 2013-07-17T14:00:08.107 回答