Как я могу разорвать внешний цикл с PHP?
Я ищу, чтобы сломать внешний цикл for/foreach в PHP.
Это можно сделать в ActionScript следующим образом:
top : for each(var i:MovieClip in movieClipArray)
{
for each(var j:String in nameArray)
{
if(i.name == j) break top;
}
}
что такое PHP эквивалент?
6 ответов:
руководство PHP говорит
break принимает необязательное числовое значение аргумент, который говорит, сколько вложенные ограждающие конструкции должны быть вырвался из нее.
break 2;
вы можете использовать только оператор break-n:
foreach(...) { foreach(...) { if(i.name == j) break 2; //Breaks 2 levels, so breaks outermost foreach } }
Если вы находитесь в php >= 5.3, вы можете использовать метки и
goto
s, как и в сценарии действий:foreach(...) { foreach(...) { if(i.name == j) goto top; } } top :
но Гото необходимо использовать осторожно. Гото это зло (считается плохой практикой)
можно использовать
break 2;
вырваться из двух петель одновременно. Это не совсем то же самое, что ваш пример с "именованными" циклами, но он будет делать трюк.