1 changed files with 85 additions and 0 deletions
@ -0,0 +1,85 @@ |
|||
--TEST-- |
|||
ArrayIterator::next() with internal arrays |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$ar = new ArrayObject(); |
|||
|
|||
$ar[0] = 1; |
|||
$ar[1] = 2; |
|||
$ar[2] = 3; |
|||
$ar[3] = 4; |
|||
$ar[4] = 5; |
|||
|
|||
var_dump($ar); |
|||
|
|||
$it = $ar->getIterator(); |
|||
|
|||
$ar->offsetUnset($it->key()); |
|||
$it->next(); |
|||
|
|||
var_dump($it->current()); |
|||
var_dump($ar); |
|||
|
|||
foreach($it as $k => $v) |
|||
{ |
|||
$ar->offsetUnset($k+1); |
|||
echo "$k=>$v\n"; |
|||
} |
|||
|
|||
var_dump($ar); |
|||
|
|||
foreach($it as $k => $v) |
|||
{ |
|||
$ar->offsetUnset($k); |
|||
echo "$k=>$v\n"; |
|||
} |
|||
|
|||
var_dump($ar); |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
object(ArrayObject)#%d (5) { |
|||
[0]=> |
|||
int(1) |
|||
[1]=> |
|||
int(2) |
|||
[2]=> |
|||
int(3) |
|||
[3]=> |
|||
int(4) |
|||
[4]=> |
|||
int(5) |
|||
} |
|||
|
|||
Notice: ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d |
|||
int(2) |
|||
object(ArrayObject)#%d (4) { |
|||
[1]=> |
|||
int(2) |
|||
[2]=> |
|||
int(3) |
|||
[3]=> |
|||
int(4) |
|||
[4]=> |
|||
int(5) |
|||
} |
|||
1=>2 |
|||
3=>4 |
|||
object(ArrayObject)#%d (2) { |
|||
[1]=> |
|||
int(2) |
|||
[3]=> |
|||
int(4) |
|||
} |
|||
1=>2 |
|||
|
|||
Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d |
|||
3=>4 |
|||
|
|||
Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d |
|||
object(ArrayObject)#%d (0) { |
|||
} |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue