duanfu1873 2012-11-27 08:29
浏览 15
已采纳

PHP切换通过问题

Code:

switch ($_GET['operation']) {
    case "professionist":
    case "company":
    case "student":
        echo "ok<br>";

    case "professionist":
        echo "inprofessionist<br>";
        break;

    case "company":
        echo "incompany<br>";
        break;

    default:
        echo "Meh!<br>";
        break;
}

My goal is to execute some (common to professionist/company/student) code first, and then execute the rest of the code depending on the operation...

The problem is that the first 3 cases works perfectly, but then, if for example the operation is "company", the switch go on "professionist" case, what i'm doing wrong? How can improve that? Thanks in advance...

  • 写回答

2条回答 默认 最新

  • duanshang3230 2012-11-27 08:32
    关注

    That's how switch works. If you always need to print "ok" then move it outside switch:

    $op = $_GET["operation"];
    
    if (in_array($op, array("professionist", "company"))) {
       echo "ok<br>";
    }
    
    switch ($op) {
        case "professionist":
            echo "inprofessionist<br>";
            break;
    
        case "company":
            echo "incompany<br>";
            break;
    
        default:
            echo "Meh!<br>";
            break;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?