[英]Break, continue and exit issue while using with loop PHP 5.6
Switch语句有效但是,我试图突破循环但没有太多运气。
我尝试休息,休息1,休息2并继续,但它不起作用。 我使用的是PHP 5.6。 Echo工作正常,数据来自数据库就好了。 问题是它的打印三次。
<?php
$sql = "SELECT *
FROM table1
INNER JOIN verify
WHERE uname='$showuser'";
$result = mysqli_query($mysqli,$sql);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$userid= $row["id"];
$verify= $row["verified"];
//NB! Notice how the If and While Loop are not closed here
?>
<?php echo " stuff etc etc" ?>
<?php
//I cant seem to some out of the IF statement. I tried BREAK, CONTINUE and EXIT.
switch ($verify) {
case '1': echo "<img src='passed.png' />"; break 1;
case '3': echo "<img src='failed.png' />"; break 1;
default: echo "<img src='waiting.png' />"; break;
}//END switch
?>
<?php }} //END first IF & WHILE loops
$sql2 = "SELECT * FROM table2 WHERE e.ctable_id = $userid ";
$result2 = mysqli_query($mysqli,$sql2) or die(mysqli_error($mysqli));
if(mysqli_num_rows($result2) > 0){
while($row2 = mysqli_fetch_array($result2)){
?>
<?php echo " stuff etc etc" ?>
<?php } } //END second IF & WHILE loops ?>
在添加switch语句之前一切都很好。
break结束当前for,foreach, while ,do-while或switch结构的执行。
break 1
只会突破你的“switch”语句,你需要break 2
才能达到while循环嵌套级别。
$count = 0;
while( $count++ < 10 )
{
echo 'while';
switch( true )
{
case true:
echo 'switch';
break 2; // TWO is needed here to break out of TWO levels of nesting
}
}
https://www.php.net/manual/en/control-structures.break.php
break接受一个可选的数字参数,告诉它有多少嵌套的封闭结构被打破。 默认值为1 ,仅打破了直接封闭结构。
要阻止脚本的其余部分运行,您可以这样做
exit;
如果要退出if / else语句(如果满足),请执行
return;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.