簡體   English   中英

當在PHP中達到中斷時,它將中斷多少個級別?

[英]When a break is reached in PHP how many levels does it break out of?

好的,這可能是一個基本問題,但是我想要一個有根據的答案,而且我似乎無法正確使用關鍵字來通過Google獲得答案。 如果這是重復的操作,請關閉它並指向正確的方向。

所以這是問題。 在下面的代碼中,執行指向的中斷時,它也會在哪里中斷?

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;

我的直覺告訴我db_disconnect函數仍將執行,但UPDATE USERS查詢及其關聯的行將不會執行。 我認為正確嗎? 謝謝!

在PHP中, break只能打破一個級別,在您的情況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;
    }
}

當在PHP中達到中斷時,它將中斷多少個級別?

1個

在您的示例中,break將移至switch級別,保留case語句。 db_disconnect將不會運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM