[php-src] Issue #8561: SplFileObject: key() and current() unsinchronized after call to fgets()
| From: | gabrielpl | Date: | Mon, 16 May 2022 01:32:50 +0000 |
| Subject: | [php-src] Issue #8561: SplFileObject: key() and current() unsinchronized after call to fgets() | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-241521@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/8561
Author: gabrielpl
### Description
The following [code](https://3v4l.org/R8sMu):
```php
<?php
declare(strict_types=1);
$file = new SplTempFileObject();
// write to file
for ($i = 0; $i < 5; $i++) {
$file->fwrite("line {$i}" . PHP_EOL);
}
$file->rewind();
// read first line
$file->fgets();
// where am I?
echo $file->key(), ': ', $file->current();
```
Resulted in this output:
```
1: line 0
```
But I expected this output instead:
```
1: line 1
```
This bug was introduced after fixing #8273
### PHP Version
PHP 8.1.6
### Operating System
Windows 11