Как глубоко я должен вырваться из петель?

У меня есть бесконечный цикл в PHP и мне нужно знать целое число после разрыва в переключателе. Щас пользуюсь break 5; но теперь я уверен, что это правильно. Может ли кто-нибудь сказать мне, как вырваться из всех петель, но while (true), Я удалил ненужный код, чтобы остались только циклы.

$i = 0;
while (true)
{
// After the break 5 in the switch we should land here again

foreach ($users as $user)
{
while ($i < 10)
{
if (!empty($user))
{
if (isset($user->id))
{
switch($user->id)
{
case 1:
break 5;
default:
break 5; // Need to break out the foreach. So a break five right?
}
}
}

$i++;
}
}

$i=0;
}

0

Решение

Ответ равен 3, поскольку прерывание завершает выполнение текущей структуры for, foreach, while, do-while или switch.

куда break 1 существует только switch, 2 while а также 3 foreach а также 4 главный while,

Но, возможно, это лучший метод, так как вы специально указываете, куда идти, а не гадаете. Вы не можете поместить маркер goto внутри цикла, но в вашем случае вы можете просто сделать это перед циклом.

$i = 0;
mybegin:
while (true){
# 1. After the break 3 in the switch we will -not- land here.
# 3. So if you want to start here, you will need to use the goto statement.

foreach ($users as $user){
while ($i < 10){
if (!empty($user)){
if (isset($user->id)){
switch($user->id){
case 1:
break 3;
default:
goto mybegin;
}
}
}

$i++;
}
}
# 2. Using break 3, the code continues here.
$i=0;
}

Но я должен сказать, что мне никогда не требовалось столько циклов или операторов goto, так как всегда есть лучший способ.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector