【问题标题】:stop script or loop after first match without using exit;在第一次匹配后停止脚本或循环而不使用退出;
【发布时间】:2012-07-04 11:16:02
【问题描述】:

不知道如何问这个问题...问题是如果if ($current[$id][$i]['item'] == '') 为真,我需要停止循环运行,所以无论脚本需要做什么或在这种情况下回显,都不要重复15 次。

如果使用exit; 整个页面将停止渲染,那么,有什么想法吗?

提前致谢。

如果问题不够清楚,请随时使用 cmets 提问,我将非常乐意澄清任何疑问。

$i=1; 
while($i<=15) { 
    if ($current[$id][$i]['item'] == '') { 
        echo 'Done!.';
        //do something
    } 
    $a++; 
}

【问题讨论】:

  • 讨厌打破它给你,但这东西很简单!

标签: php while-loop exit exit-code


【解决方案1】:

使用break

$i=1; 
while($i<=15) { 
    if ($current[$id][$i]['item'] == '') { 
        echo 'Done!.';
        break;
    } 
    $i++;  //<- that should probably be $i instead of $a?
}

【讨论】:

  • @user983248 实际上我只是稍微编辑了帖子,答案归功于 Gryphius
【解决方案2】:

使用break控制结构怎么样?

【讨论】:

    【解决方案3】:

    你需要打破。此外,您当前的循环是无限的,因此会超时。大概你的意思是增加$i,而不是$a

    $i=1; 
    while($i<=15) { 
        if ($current[$id][$i]['item'] == '') { 
            echo 'Done!.';
            break; //<-- terminate loop
        } 
        $a++; //<-- shouldn't this be $i++?
    }
    

    【讨论】:

      【解决方案4】:

      只有两种方法可以打破循环......使用exit;break;......

      break; 是你想要的它会退出循环并继续执行,exit 会结束脚本。

      【讨论】:

        【解决方案5】:
        $i=1; 
        while($i<=15) { 
            if ($current[$id][$i]['item'] == '') { 
                echo 'Done!.';
                break;  //   or you can make value of $i = 20;
            } 
            $a++; 
        }
        

        【讨论】:

        • 虽然这可行,但我不会这样做 - 如果$i 的上限发生变化,这可能会导致各种问题。这就是为什么有 break 关键字的原因。
        • 同意 - 它会起作用,但没有理由在 break 上使用这种技术,并且可能会产生副作用。
        • @Utkanos 首先我认为他需要在 js 中执行此操作,这就是我发布此内容的原因
        猜你喜欢
        • 1970-01-01
        • 2022-12-05
        • 2023-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-17
        • 2015-10-20
        • 1970-01-01
        相关资源
        最近更新 更多