iterator_008.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. --TEST--
  2. SPL: InfiniteIterator
  3. --FILE--
  4. <?php
  5. class ArrayIteratorEx extends ArrayIterator
  6. {
  7. function rewind(): void
  8. {
  9. echo __METHOD__ . "\n";
  10. parent::rewind();
  11. }
  12. function valid(): bool
  13. {
  14. echo __METHOD__ . "\n";
  15. return parent::valid();
  16. }
  17. function current(): mixed
  18. {
  19. echo __METHOD__ . "\n";
  20. return parent::current();
  21. }
  22. function key(): string|int|null
  23. {
  24. echo __METHOD__ . "\n";
  25. return parent::key();
  26. }
  27. function next(): void
  28. {
  29. echo __METHOD__ . "\n";
  30. parent::next();
  31. }
  32. }
  33. $it = new InfiniteIterator(new ArrayIteratorEx(range(0,2)));
  34. $pos =0;
  35. foreach ($it as $v) {
  36. var_dump($v);
  37. if ($pos++ > 5) {
  38. break;
  39. }
  40. }
  41. ?>
  42. --EXPECT--
  43. ArrayIteratorEx::rewind
  44. ArrayIteratorEx::valid
  45. ArrayIteratorEx::current
  46. ArrayIteratorEx::key
  47. int(0)
  48. ArrayIteratorEx::next
  49. ArrayIteratorEx::valid
  50. ArrayIteratorEx::current
  51. ArrayIteratorEx::key
  52. int(1)
  53. ArrayIteratorEx::next
  54. ArrayIteratorEx::valid
  55. ArrayIteratorEx::current
  56. ArrayIteratorEx::key
  57. int(2)
  58. ArrayIteratorEx::next
  59. ArrayIteratorEx::valid
  60. ArrayIteratorEx::rewind
  61. ArrayIteratorEx::valid
  62. ArrayIteratorEx::current
  63. ArrayIteratorEx::key
  64. int(0)
  65. ArrayIteratorEx::next
  66. ArrayIteratorEx::valid
  67. ArrayIteratorEx::current
  68. ArrayIteratorEx::key
  69. int(1)
  70. ArrayIteratorEx::next
  71. ArrayIteratorEx::valid
  72. ArrayIteratorEx::current
  73. ArrayIteratorEx::key
  74. int(2)
  75. ArrayIteratorEx::next
  76. ArrayIteratorEx::valid
  77. ArrayIteratorEx::rewind
  78. ArrayIteratorEx::valid
  79. ArrayIteratorEx::current
  80. ArrayIteratorEx::key
  81. int(0)