当PHP中出现中断时,它会中断多少级别?
好的,这可能是一个基本的问题,但我想要一个有根据的答案,而我似乎无法通过谷歌获得正确的关键字来获得答案。如果这是一个重复,请关闭它,并指出我在正确的方向 所以问题来了。在下面的代码中,当执行指向的中断时,它也会在哪里中断当PHP中出现中断时,它会中断多少级别?,php,Php,好的,这可能是一个基本的问题,但我想要一个有根据的答案,而我似乎无法通过谷歌获得正确的关键字来获得答案。如果这是一个重复,请关闭它,并指出我在正确的方向 所以问题来了。在下面的代码中,当执行指向的中断时,它也会在哪里中断 case 'changeEmployeeInfo': $con = db_connect(DBNAME, DBUSERNAME, DBPASSWORD , DBHOST); $query = 'UPDATE USERS SET firstname = ?, la
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;
案例“changeEmployeeInfo”:
$con=db_connect(DBNAME、DBUSERNAME、DBPASSWORD、DBHOST);
$query='更新用户集firstname=?,lastname=?,email=?其中idusers=?';
$updateValues=array($firstName、$lastName、$email、$employeeID);
$newID=db\u change($query、$updateValues、$con);
如果($|U会话['role']==1 |$| U会话['role']==3 | |$| U会话['role']==4){
如果($_POST['status']==true){
$status=1;
}elseif($\u POST['status']==false){
$status=0;
}
否则{
中断//
当PHP中出现中断时,它会中断多少级别
1break
在PHP中只中断一个级别,在您的例子中是case
。要中断更多级别,请使用break n
:
从:
$i=0;
while(++$i){
交换机(一美元){
案例5:
回声“在5时
\n”;
断开1;/*仅退出开关*/
案例10:
回声“在10;退出
\n”;
断开2;/*退出开关,同时退出*/
违约:
打破
}
}
在您的示例中,break将移动到开关
级别,留下您的case
语句。
db_disconnect
将不会运行。尝试并亲自查看肯定会更快;)这取决于。我相信在这种情况下,它会从开关盒中断开?@mario哦。天哪。我现在怎么才刚刚了解到这一点?!@fabianblechsidt取决于什么?@fabianblechsidt-不正确,OP的问题的答案是我在我的回答中,Fabian,学会阅读整个问题。当问题很长时也要这样做-对此表示抱歉:(db_disconnect是案例级别的一部分,为什么不运行?@FrankB-更正(它打断了“脱离案例”,而不是“脱离案例”)如果
,为什么不只中断?因为文档中这样说:break结束当前for、foreach、while、do while或switch结构的执行。
所以为了确保db\u disconnect
仍然运行,我应该在中断之前执行它?还有允许转义I的类似语句吗f
语句?@FrankB您可以使用布尔标志或在您的if/else
逻辑中移动。@Mathiembert请不要给他任何想法…:P
$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;
}
}