пропустить текущую итерацию - PullRequest
42 голосов
/ 17 февраля 2011

У меня есть массив php $numbers = array(1,2,3,4,5,6,7,8,9)

, если я зацикливаюсь на нем, используя foreach foreach($numbers as $number)

и у меня есть оператор if if($number == 4)

чтобудет ли после этого строка кода, которая пропустит что-нибудь после этой строки и начнет цикл с 5?перерыв, возврат, выход?

Ответы [ 4 ]

86 голосов
/ 17 февраля 2011

Вы ищете оператор continue . Также полезным является break , который полностью выйдет из цикла. Оба оператора работают со всеми вариациями цикла, т.е. for, foreach и while.

$numbers = array( 1, 2, 3, 4, 5, 6, 7, 8, 9 );
foreach( $numbers as $number ) {
    if ( $number == 4 ) { continue; }
    // ... snip
}
17 голосов
/ 17 февраля 2011
continue;

Continue скажет пропустить текущий итерационный блок, но продолжит с остальной частью цикла.Работает во всех сценариях (пока, и т. Д.)

5 голосов
/ 01 июня 2017

Перерыв; остановит цикл и сделает компилятор вне цикла. пока продолжаю; будет просто пропустить текущий и перейти к следующему циклу. как:

$i = 0;
while ($i++)
{
    if ($i == 3)
    {
        continue;
    }
    if ($i == 5)
    {
        break;
    }
    echo $i . "\n";
}

Выход:

1
2
4
6 <- this won't happen
2 голосов
/ 17 февраля 2011

Полагаю, вы ищете продолжение Посмотрите на http://php.net/manual/en/control-structures.continue.php

Dinel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...