且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP开关案例$ _GET的变量和开关案例$ _GET的变量值

更新时间:2022-10-16 12:58:54

您必须将开关放在foreach()循环中。

  foreach($ _GET as $ key => $ value){
switch($ key){
'login':
开关($ value){
case'0':
echo'登录失败!';
休息;
case'1':
echo'登录成功。';
休息;
}
break;
case'register':
switch($ value){
case'0':
echo'注册失败!';
休息;
case'1':
echo'谢谢您注册。';
休息;
}
break;
默认值:
echo'其他消息';
休息;
}
}


Say I have an URL like www.mysite.com/index.php?login=0. Is it possible to switch case $_GET's variables and switch case $_GET's variable's values?

Something like:

switch ($_GET) {
    case 'login' :
        switch($_GET['login']) {
            case '0' :
                echo 'Login failed!';
                break;
            case '1' :
                echo 'Login successful.';
                break;
        }
        break;
    case 'register' :
        switch ($_GET['register']) {
            case '0' :
                echo 'Registration failed!';
                break;
            case '1' :
                echo 'Thank you for registering.';
                break;
        }
        break;
    default :
        echo 'Some other message';
        break;
}

I'm not sure if switch case can be used on associative arrays. What am I doing wrong? Cheers!

You have to enclose the switch in a foreach() loop.

foreach ($_GET as $key => $value) {
    switch ($key) {
        case 'login' :
            switch ($value) {
                case '0' :
                    echo 'Login failed!';
                    break;
                case '1' :
                    echo 'Login successful.';
                    break;
            }
            break;
        case 'register' :
            switch ($value) {
                case '0' :
                    echo 'Registration failed!';
                    break;
                case '1' :
                    echo 'Thank you for registering.';
                    break;
            }
            break;
        default :
            echo 'Some other message';
            break;
    }
}