php switch语句在另一个switch语句中

pah*_*nin 12 php switch-statement

我有这种情况,我在检查语句中的一个switch语句中的第一个后检查GET变量,第二个变量必须在第一个case循环内的第二个switch语句中检查

我不能在这里发布确切的代码,但这是一个例子

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', '1');

    switch($_GET['parent']){
        case 'child1':
            if(!isset($_GET['child'])){
                echo "Only parent";
            }
            else{
                switch($_GET['child']){
                    case 'test':
                        echo 'test';
                        break;
                }
            }
            break;

        case 'child2':
            echo 'child2';
            break;

        default:
            echo $_GET['parent'];
    }
?>
Run Code Online (Sandbox Code Playgroud)

它在这个代码示例中运行正常,但是当我在我的服务器上实际使用此过程时,即使它具有匹配的大小写值,控件也会在父开关语句处跳过默认值

没有报告错误,并且没有调试超过此级别

Plz帮帮我!我知道你想看代码,但我不能在这里发布,至少你可以指导我调试更多.

谢谢

小智 36

根据PHP文档示例,如果包含嵌套开关的case块可以用大括号括起来.

按照上面提到的例子.

<?php 
    switch ($argc) { 
        case 'home': { 
             print('This is $argc, home case.'); 
            break; 
        } 
        case 'subsection': { 
                switch ($argd) { 
                     case 'links': { 
                            switch($arge) { 
                                case 'display': { 
                                print('This is $arge, subsection,links,display case.'); 
                                break; 
                                } 
                           } 
                    } 
                } 
        } 
    } 
?>
Run Code Online (Sandbox Code Playgroud)