如何用 PHP 打破外部循环?

我希望在 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 的等价物是什么?

68076 次浏览

您可以使用 break 2;同时打破两个循环。这与使用“命名”循环的示例不完全相同,但是它可以实现这个功能。

PHP 手册

Break 接受一个可选的数字 这个论点告诉它有多少 嵌套的封闭结构 越狱。

break 2;

使用 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:

foreach (...)
{
foreach (...)
{
if (i.name == j)
goto top;
}
}
top:

但是必须小心使用 goto。后藤是 邪恶(被认为是不好的做法)