繁体   English   中英

使用循环PHP 5.6时,中断,继续和退出问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM