[php-src] Issue #7979: CachingIterator::hasNext() advances DatePeriod iterator

From: Date: Fri, 21 Jan 2022 06:57:10 +0000
Subject: [php-src] Issue #7979: CachingIterator::hasNext() advances DatePeriod iterator
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-239164@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/7979 Author: dg ### Description The following code: ```php <?php $start = \DateTime::createFromFormat('Y-m-d', '2021-01-01'); $end = \DateTime::createFromFormat('Y-m-d', '2021-01-10'); $period = new \DatePeriod($start, \DateInterval::createFromDateString('1 day'), $end); $iterator = new \CachingIterator($period->getIterator(), 0); foreach ($iterator as $item) { echo $item->format('c'), "\n"; $iterator->hasNext(); // advances iterator $iterator->hasNext(); // advances iterator } ``` It returns: ``` 2021-01-01T07:56:05+01:00 2021-01-04T07:56:05+01:00 2021-01-07T07:56:05+01:00 ... ``` But it should return ``` 2021-01-01T07:54:37+01:00 2021-01-02T07:54:37+01:00 2021-01-03T07:54:37+01:00 ... ``` ### PHP Version PHP 8.0-8.1 ### Operating System _No response_

« previous php.bugs (#239164) next »