好吧这可能是一个基本问题,但我想要一个明智的答案,我似乎无法通过谷歌得到正确的关键字。如果这是重复,请关闭它并指出我正确的方向。
所以这就是问题所在。在下面的代码中,当执行指向的中断时,它也会在哪里突破?
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
查询及其关联的行不会被执行。我在想这个是正确的吗?谢谢!
答案 0 :(得分:5)
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;
}
}
答案 1 :(得分:2)
当在PHP中达到中断时,会突破多少个级别?
1
答案 2 :(得分:1)
在您的示例中,中断将移至switch
级别,留下您的case
语句。
db_disconnect
将无法运行。