2016-12-11 3 views
0

Я зацикливаю 2 даты и распечатываю весь день между ними. ниже - мой цикл с использованием carbon. цикл не останавливается, даже если isSameDay возвращает true.сравнить метод Carbon's isSameDay создать бесконечный цикл в For statement

$check_in = new Carbon($check_in); 
    $check_out = new Carbon($check_out); 

    for(
     $check_in; 
     $check_in->addDay(); 
     $check_in->isSameDay($check_out) 
    ) { 
     print_r($check_in->day); 
    } 

Я проверил следующий код

print_r($check_in->addDay(4)->isSameDay($check_out)); 
// 12/20 + 4 day = 12/24 return true. 

ответ

0

так что я отсылают к документации передачи контура в

Первое выражение (expr1) вычисляется (выполняется) один раз безоговорочно в начале петля.

В начале каждой итерации вычисляется выражение expr2. Если он оценивает значение TRUE, цикл продолжается и выполняется вложенный оператор (ы). Если он вычисляет значение FALSE, выполнение цикла завершается.

В конце каждой итерации expr3 оценивается (выполняется).

поэтому мой заказ неправильно, это должно быть

for($check_in; $check_in->lte($check_out); $check_in->addDay(1)) { 

}