当在PHP中达到中断时它会突破多少个级别?

Fra*_*k B 0 php

好的,这可能是一个基本问题,但我想要一个明智的答案,我似乎无法通过谷歌获得正确的关键字.如果这是重复,请关闭它并指出我正确的方向.

所以这就是问题所在.在下面的代码中,当执行指向的中断时,它也会在哪里爆发?

case 'changeEmployeeInfo':
    $con = db_connect(DBNAME, DBUSERNAME, DBPASSWORD , DBHOST);
    $query = 'UPDATE USERS SET firstname = ?, lastname = ?, email = ? where idusers = ?';
    $updateValues = array($firstName,$lastName,$email,$employeeID);
    $newID = db_change($query,$updateValues,$con);
    if($_SESSION['role']==1||$_SESSION['role']==3||$_SESSION['role']==4){
        if($_POST['status']== true){
            $status = 1;
        }elseif($_POST['status']==false){
            $status = 0;
        }
        else{
            break;//<--THIS IS THE BREAK I'M TALKING ABOUT
        }
        $query = 'UPDATE USERS SET status = ? where idusers = ?';
        $updateValues = array($status, $employeeID);
        $newID = db_change($query,$updateValues,$con);
    }
    db_disconnect($con);
    break;
Run Code Online (Sandbox Code Playgroud)

我的直觉告诉我,该db_disconnect函数仍将被执行,但UPDATE USERS查询及其关联的行不会被执行.我在想这个是正确的吗?谢谢!

Bar*_*chs 5

break在PHP中打破了一个级别,在你的情况下case.要打破更多级别,请使用break n:

文档:

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)