Оптимизация while в PHP

Рейтинг: 0Ответов: 1Опубликовано: 20.03.2015

Здравствуйте,

Есть задача сделать цикл, который при каждой итерации выполняет функцию foo(), если она возвращает объект данных - использовать его в теле цикла, а если false - выйти из цикла.

Вопрос: как избавиться от повторного вызова функции в теле цикла?

foreach ($items as $i) {
    while(foo()) {
        $data = foo();
        //операции над данными $data
    }
}
function foo() {
    $data = Object;
    return (someCondition)?$data:false;
}

Ответы

▲ 1

Непонятно, что вообще за вакханалия происходит :)

<?
foreach($items as $i){
 if($data = foo()){ // Проверяем что возвращает foo()
  // Возвратился объект, делаем что нужно
 }else
  break; // Возврат false, выходим из foreach
}