[php-src] Issue #7979: CachingIterator::hasNext() advances DatePeriod iterator
| From: | dg | 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_