Switch语句有效,但是,我试图摆脱循环,但运气不佳。
我尝试了中断,中断1,中断2并继续,但是它不起作用。我正在使用PHP 5.6。 Echo工作正常,数据从DB发出也很好。问题是它打印了三遍。
<?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语句之前,一切都很好。
答案 0 :(得分:3)
break结束当前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 ,仅打破了直接封闭的结构。
答案 1 :(得分:0)
要停止脚本的其余部分运行,您可以
exit;
如果要退出if / else语句(如果满意),请执行
return;