Bug #70246 [Opn]: ArrayIterator skips next element when current element is unset in foreach.

From: Date: Tue, 18 Aug 2015 11:56:40 +0000
Subject: Bug #70246 [Opn]: ArrayIterator skips next element when current element is unset in foreach.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-195283@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70246&edit=1 ID: 70246 User updated by: arjen at react dot com Reported by: arjen at react dot com Summary: ArrayIterator skips next element when current element is unset in foreach. Status: Open Type: Bug Package: SPL related Operating System: Linux PHP Version: 7.0.0beta3 Block user comment: N Private report: N New Comment: Expected and actual result are swapped, my mistake.. Expected result: -------------- int(1) int(2) int(3) int(4) int(5) --------- int(1) int(3) int(4) int(5) Actual result: ---------------- int(1) int(2) int(4) int(5) --------- int(1) int(3) int(4) int(5) Previous Comments: ------------------------------------------------------------------------ [2015-08-12 12:34:15] arjen at react dot com Description: ------------ ArrayIterator skips next element when current element is unset in foreach. http://3v4l.org/uUoaH Test script: --------------- <?php $ar = [1,2,3,4,5]; $i = new ArrayIterator($ar); foreach ($i as $k => $e) { var_dump($e); if ($k === 1) { unset($i[$k]); } } echo '---------' . PHP_EOL; foreach ($i as $e) { var_dump($e); } Expected result: ---------------- int(1) int(2) int(4) int(5) --------- int(1) int(3) int(4) int(5) Actual result: -------------- int(1) int(2) int(3) int(4) int(5) --------- int(1) int(3) int(4) int(5) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70246&edit=1

« previous php.bugs (#195283) next »