123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- --TEST--
- SPL: AppendIterator and its ArrayIterator
- --FILE--
- <?php
- function test_error_handler($errno, $msg, $filename, $linenum, $vars)
- {
- echo "Error $msg in $filename on line $linenum\n";
- return true;
- }
- set_error_handler('test_error_handler');
- $it = new AppendIterator;
- $it->append(array());
- $it->append(new ArrayIterator(array(1)));
- $it->append(new ArrayIterator(array(21, 22)));
- var_dump($it->getArrayIterator());
- $it->append(new ArrayIterator(array(31, 32, 33)));
- var_dump($it->getArrayIterator());
- $idx = 0;
- foreach($it as $k => $v)
- {
- echo '===' . $idx++ . "===\n";
- var_dump($it->getIteratorIndex());
- var_dump($k);
- var_dump($v);
- }
- ?>
- ===DONE===
- <?php exit(0); ?>
- --EXPECTF--
- Error Argument 1 passed to AppendIterator::append() must implement interface Iterator, array given in %siterator_042.php on line %d
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(2) {
- [0]=>
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(1) {
- [0]=>
- int(1)
- }
- }
- [1]=>
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(2) {
- [0]=>
- int(21)
- [1]=>
- int(22)
- }
- }
- }
- }
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(3) {
- [0]=>
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(1) {
- [0]=>
- int(1)
- }
- }
- [1]=>
- object(ArrayIterator)#%d (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(2) {
- [0]=>
- int(21)
- [1]=>
- int(22)
- }
- }
- [2]=>
- object(ArrayIterator)#5 (1) {
- %s"storage"%s"ArrayIterator":private]=>
- array(3) {
- [0]=>
- int(31)
- [1]=>
- int(32)
- [2]=>
- int(33)
- }
- }
- }
- }
- ===0===
- int(0)
- int(0)
- int(1)
- ===1===
- int(1)
- int(0)
- int(21)
- ===2===
- int(1)
- int(1)
- int(22)
- ===3===
- int(2)
- int(0)
- int(31)
- ===4===
- int(2)
- int(1)
- int(32)
- ===5===
- int(2)
- int(2)
- int(33)
- ===DONE===
|