iterator_028.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. --TEST--
  2. SPL: RecursiveIteratorIterator and setMaxDepth()
  3. --FILE--
  4. <?php
  5. $ar = array(1, 2, array(31, 32, array(331, array(3321, array(33221)))), 4);
  6. $it = new RecursiveIteratorIterator(new RecursiveArrayIterator($ar));
  7. echo "===?===\n";
  8. var_dump($it->getMaxDepth());
  9. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  10. echo "===2===\n";
  11. $it->setMaxDepth(2);
  12. var_dump($it->getMaxDepth());
  13. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  14. echo "===X===\n";
  15. $it->setMaxDepth();
  16. var_dump($it->getMaxDepth());
  17. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  18. echo "===3===\n";
  19. $it->setMaxDepth(3);
  20. var_dump($it->getMaxDepth());
  21. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  22. echo "===5===\n";
  23. $it->setMaxDepth(5);
  24. var_dump($it->getMaxDepth());
  25. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  26. echo "===0===\n";
  27. $it->setMaxDepth(0);
  28. var_dump($it->getMaxDepth());
  29. foreach($it as $v) echo $it->getDepth() . ": $v\n";
  30. echo "===-1===\n";
  31. $it->setMaxDepth(-1);
  32. var_dump($it->getMaxDepth());
  33. try
  34. {
  35. $it->setMaxDepth(4);
  36. $it->setMaxDepth(-2);
  37. }
  38. catch(Exception $e)
  39. {
  40. var_dump($e->getMessage());
  41. }
  42. var_dump($it->getMaxDepth());
  43. ?>
  44. ===DONE===
  45. <?php exit(0); ?>
  46. --EXPECT--
  47. ===?===
  48. bool(false)
  49. 0: 1
  50. 0: 2
  51. 1: 31
  52. 1: 32
  53. 2: 331
  54. 3: 3321
  55. 4: 33221
  56. 0: 4
  57. ===2===
  58. int(2)
  59. 0: 1
  60. 0: 2
  61. 1: 31
  62. 1: 32
  63. 2: 331
  64. 0: 4
  65. ===X===
  66. bool(false)
  67. 0: 1
  68. 0: 2
  69. 1: 31
  70. 1: 32
  71. 2: 331
  72. 3: 3321
  73. 4: 33221
  74. 0: 4
  75. ===3===
  76. int(3)
  77. 0: 1
  78. 0: 2
  79. 1: 31
  80. 1: 32
  81. 2: 331
  82. 3: 3321
  83. 0: 4
  84. ===5===
  85. int(5)
  86. 0: 1
  87. 0: 2
  88. 1: 31
  89. 1: 32
  90. 2: 331
  91. 3: 3321
  92. 4: 33221
  93. 0: 4
  94. ===0===
  95. int(0)
  96. 0: 1
  97. 0: 2
  98. 0: 4
  99. ===-1===
  100. bool(false)
  101. string(33) "Parameter max_depth must be >= -1"
  102. int(4)
  103. ===DONE===