在第一次匹配后停止脚本或循环而不使用退出;
Posted
技术标签:
【中文标题】在第一次匹配后停止脚本或循环而不使用退出;【英文标题】: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++;
【问题讨论】:
讨厌打破它给你,但这东西很简单! 【参考方案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 中执行此操作,这就是我发布此内容的原因以上是关于在第一次匹配后停止脚本或循环而不使用退出;的主要内容,如果未能解决你的问题,请参考以下文章