diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-14 12:30:50 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-14 12:31:06 +0200 |
| commit | 70501b81a75c7c4cd0ec3a121e290e561829deb9 (patch) | |
| tree | decfc1f946fe6b9019ceb0b18f87522b6905ce88 /Zend/zend_interfaces.c | |
| parent | 8c89f23c4552405b4603156c0c81d6cc0bd7f5c3 (diff) | |
| download | php-git-70501b81a75c7c4cd0ec3a121e290e561829deb9.tar.gz | |
Fixed bug #79852
Diffstat (limited to 'Zend/zend_interfaces.c')
| -rw-r--r-- | Zend/zend_interfaces.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 68d0077795..37c72ef554 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -469,6 +469,7 @@ ZEND_API int zend_create_internal_iterator_zval(zval *return_value, zval *obj) { zend_internal_iterator *intern = (zend_internal_iterator *) zend_internal_iterator_create(zend_ce_internal_iterator); intern->iter = iter; + intern->iter->index = 0; ZVAL_OBJ(return_value, &intern->std); return SUCCESS; } @@ -559,8 +560,9 @@ ZEND_METHOD(InternalIterator, next) { RETURN_THROWS(); } - intern->iter->funcs->move_forward(intern->iter); + /* Advance index first to match foreach behavior. */ intern->iter->index++; + intern->iter->funcs->move_forward(intern->iter); } ZEND_METHOD(InternalIterator, valid) { |
