Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Что приводит к завершению цикла php foreach?

Автор вопроса: user1973200Ответов: 2

У меня были проблемы с одним из моих циклов foreach, где ЧАСТЬ цикла завершается всего после одной итерации без вывода или ошибки.

После поиска ответов в Интернете я до сих пор не знаю возможных причин этой проблемы (и код слишком велик, чтобы быть полезным для сообщества...)

Поэтому мой вопрос: "Каковы возможные причины завершения цикла foreach после одной итерации?" (при условии, что требуется больше итераций)

  • может быть, инструкция break. CoursesWeb 13.01.2013
  • break, die и return могут полностью отменить foreach, continue может пропустить итерацию, но не нарушит цикл. Sammaye 13.01.2013
  • "PART of the loop terminates after just one iteration" = Один элемент в массиве. vascowhite 13.01.2013
  • @vascowhite (assuming more iterations are required) Sammaye 13.01.2013
  • @Sammaye Это предположение может быть ошибочным, многие ошибаются. vascowhite 13.01.2013
  • @ user1973200 с какой проблемой вы столкнулись? я сталкиваюсь с похожей проблемой. Moax6629 08.05.2015

phploopsforeachterminate

Ответы

Ответ 1 · Samuel Cook

Есть несколько способов остановить цикл foreach. Вот несколько примеров:

<?php
$range = range(1,10);

// continue;
foreach($range as $r){
    if($r!=1){
        continue;
    }
    echo $r.'<br>';
}

// break;
foreach($range as $r){
    if($r>1){
        break;
    }
    echo $r.'<br>';
}

// die;
foreach($range as $r){
    if($r>1){
        die;
    }
}

Примечание. continue не выйдет из цикла foreach, но может привести к "пропуску" строк данных.

Ответ 2 · Ajay Nigam

Он работает только с массивами и объектами и выдает ошибку, когда вы пытаетесь использовать его для переменной с другим типом данных или неинициализированной переменной.

Я думаю, что вам следует пройти по этой ссылке http://php.net/manual/en/control-structures.foreach.php для лучшего понимания цикла foreach.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы