【问题标题】:PHP continue statementPHP 继续语句
【发布时间】:2009-11-13 02:56:59
【问题描述】:

在阅读 PHP 书籍时,我想尝试我自己的(继续)示例。 我编写了以下代码,但它不起作用,尽管一切似乎都很好

$num2 = 1;

    while ($num2 < 19)
        {
            if ($num2 == 15) { 
            continue; 
            } else {
            echo "Continue at 15 (".$num2.").<br />";
            $num2++;
            }

        }

输出是

Continue at 15 (1).
Continue at 15 (2).
Continue at 15 (3).
Continue at 15 (4).
Continue at 15 (5).
Continue at 15 (6).
Continue at 15 (7).
Continue at 15 (8).
Continue at 15 (9).
Continue at 15 (10).
Continue at 15 (11).
Continue at 15 (12).
Continue at 15 (13).
Continue at 15 (14).

Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/php/continueandbreak.php on line 20

第 20 行就是那一行

if ($num2 == 15) { 

你能告诉我我的例子有什么问题吗? 对于这样的菜鸟问题,我很抱歉

【问题讨论】:

    标签: php continue


    【解决方案1】:

    如果你不在continue 之前增加$num2,你将进入一个无限循环;

    $num2 = 0;
    
    while ($num2 < 18)
        {
                $num2++;
                if ($num2 == 15) { 
                  continue; 
                } else {
                  echo "Continue at 15 (".$num2.").<br />";
                }
    
    
        }
    

    【讨论】:

    • 你的代码还是会无限循环; continue 开始循环的下一次迭代,而不执行 if-else 子句之后的内容。
    【解决方案2】:

    你甚至不需要在那里继续,你的代码相当于;

    $num2 = 1;
    while ($num2 < 19){
        if ($num2 != 15) { 
            echo "Continue at 15 (".$num2.").<br />";
            $num2++;
        }
    }
    

    如果这不是您想要实现的目标,那么您使用 continue 是错误的。

    【讨论】:

    • 这达到了同样的结果:一个最终会超时的无限循环。
    • 你肯定要移动 $num2++;在 if 循环之外(下)
    【解决方案3】:

    在 php 中,foreach 用于数组,for 用于循环

    for($num = 1; $num < 19; $num++) {
        if ($num != 15) { 
           echo "Continue at 15 (" . $num . ") . <br />";
           break;
        }   
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      相关资源
      最近更新 更多