iterator_015.phpt 993 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. SPL: RecursiveIteratorIterator and beginChildren/endChildren
  3. --FILE--
  4. <?php
  5. class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
  6. {
  7. function rewind()
  8. {
  9. echo "<ul>\n";
  10. parent::rewind();
  11. }
  12. function beginChildren()
  13. {
  14. echo str_repeat(' ',$this->getDepth())."<ul>\n";
  15. }
  16. function endChildren()
  17. {
  18. echo str_repeat(' ',$this->getDepth())."</ul>\n";
  19. }
  20. function valid()
  21. {
  22. if (!parent::valid()) {
  23. echo "<ul>\n";
  24. return false;
  25. }
  26. return true;
  27. }
  28. }
  29. $arr = array("a", array("ba", array("bba", "bbb"), array(array("bcaa"))), array("ca"), "d");
  30. $obj = new RecursiveArrayIterator($arr);
  31. $rit = new RecursiveArrayIteratorIterator($obj);
  32. foreach($rit as $k=>$v)
  33. {
  34. echo str_repeat(' ',$rit->getDepth()+1)."$k=>$v\n";
  35. }
  36. ?>
  37. ===DONE===
  38. <?php exit(0); ?>
  39. --EXPECTF--
  40. <ul>
  41. 0=>a
  42. <ul>
  43. 0=>ba
  44. <ul>
  45. 0=>bba
  46. 1=>bbb
  47. </ul>
  48. <ul>
  49. <ul>
  50. 0=>bcaa
  51. </ul>
  52. </ul>
  53. </ul>
  54. <ul>
  55. 0=>ca
  56. </ul>
  57. 3=>d
  58. <ul>
  59. ===DONE===