我希望在 PHP 中打破外部 for/foreach 循环。
这可以在 ActionScript 中完成,如下所示:
top : for each(var i:MovieClip in movieClipArray) { for each(var j:String in nameArray) { if(i.name == j) break top; } }
PHP 的等价物是什么?
您可以使用 break 2;同时打破两个循环。这与使用“命名”循环的示例不完全相同,但是它可以实现这个功能。
break 2;
PHP 手册 说
Break 接受一个可选的数字 这个论点告诉它有多少 嵌套的封闭结构 越狱。
在两个嵌套循环的情况下:
Http://php.net/manual/en/control-structures.break.php
使用 goto?
for ($i = 0, $j = 50; $i < 100; $i++) { while ($j--) { if ($j == 17) goto end; } } echo "i = $i"; end: echo 'j hit 17';
$i = new MovieClip(); foreach ($movieClipArray as $i) { $nameArray = array(); foreach ($nameArray as $n) if ($i->name == $n) break 2; }
可以使用 break-n 语句:
foreach(...) { foreach(...) { if (i.name == j) break 2; //Breaks 2 levels, so breaks outermost foreach } }
如果使用 php > = 5.3,可以使用标签和 goto,类似于 ActionScript:
goto
foreach (...) { foreach (...) { if (i.name == j) goto top; } } top:
但是必须小心使用 goto。后藤是 邪恶(被认为是不好的做法)