使用LOOP PHP 5.6时,请打破,继续和退出问题



切换语句有效,但是,我试图脱离循环,但运气不多。

我尝试过休息,打破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语句之前,一切都很好。

断裂结束当前的执行,foreach, while ,do-while或 switch> switch 结构。

break 1只会突破您的"开关"语句,您将需要break 2才能达到循环嵌套级别。

$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-sstructures.break.php

Break接受一个可选的数字参数,该参数将要脱离多少个嵌套封闭结构默认值为1 ,只有立即的封闭结构被拆除。

阻止脚本的其余部分运行

exit;

如果要退出if/else语句(如果满足(进行

return;

最新更新