iterator_024.phpt 881 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. SPL: RecursiveIteratorIterator with custom iterator class
  3. --FILE--
  4. <?php
  5. $ar = array(1, 2, array(31, 32, array(331)), 4);
  6. foreach(new RecursiveIteratorIterator(new ArrayObject($ar, 0, "RecursiveArrayIterator")) as $v) echo "$v\n";
  7. $it = new ArrayObject($ar);
  8. var_dump($it->getIteratorClass());
  9. try
  10. {
  11. foreach(new RecursiveIteratorIterator(new ArrayObject($ar)) as $v) echo "$v\n";
  12. }
  13. catch (InvalidArgumentException $e)
  14. {
  15. echo $e->getMessage() . "\n";
  16. }
  17. echo "===MANUAL===\n";
  18. $it->setIteratorClass("RecursiveArrayIterator");
  19. var_dump($it->getIteratorClass());
  20. foreach(new RecursiveIteratorIterator($it) as $v) echo "$v\n";
  21. ?>
  22. ===DONE===
  23. <?php exit(0); ?>
  24. --EXPECT--
  25. 1
  26. 2
  27. 31
  28. 32
  29. 331
  30. 4
  31. string(13) "ArrayIterator"
  32. An instance of RecursiveIterator or IteratorAggregate creating it is required
  33. ===MANUAL===
  34. string(22) "RecursiveArrayIterator"
  35. 1
  36. 2
  37. 31
  38. 32
  39. 331
  40. 4
  41. ===DONE===