3

のような URL があるとしますwww.mysite.com/index.php?login=0。ケース $_GET の変数を切り替えて、ケース $_GET の変数の値を切り替えることは可能ですか?

何かのようなもの:

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;
}

連想配列で switch case を使用できるかどうかはわかりません。私は何を間違っていますか?乾杯!

4

3 に答える 3

11

スイッチを foreach() ループで囲む必要があります。

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;
    }
}
于 2013-05-20T13:19:45.720 に答える
0

$_get は配列を返し、これらの比較は機能しません。Switch ステートメントは定数に評価される必要があります。

于 2013-05-20T13:23:42.333 に答える