array_020.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. --TEST--
  2. SPL: ArrayIterator overloading
  3. --FILE--
  4. <?php
  5. class ArrayIteratorEx extends ArrayIterator
  6. {
  7. function rewind(): void
  8. {
  9. echo __METHOD__ . "\n";
  10. ArrayIterator::rewind();
  11. }
  12. function valid(): bool
  13. {
  14. echo __METHOD__ . "\n";
  15. return ArrayIterator::valid();
  16. }
  17. function key(): string|int|null
  18. {
  19. echo __METHOD__ . "\n";
  20. return ArrayIterator::key();
  21. }
  22. function current(): mixed
  23. {
  24. echo __METHOD__ . "\n";
  25. return ArrayIterator::current();
  26. }
  27. function next(): void
  28. {
  29. echo __METHOD__ . "\n";
  30. ArrayIterator::next();
  31. }
  32. }
  33. $ar = new ArrayIteratorEx(array(1,2));
  34. foreach($ar as $k => $v)
  35. {
  36. var_dump($k);
  37. var_dump($v);
  38. }
  39. ?>
  40. --EXPECT--
  41. ArrayIteratorEx::rewind
  42. ArrayIteratorEx::valid
  43. ArrayIteratorEx::current
  44. ArrayIteratorEx::key
  45. int(0)
  46. int(1)
  47. ArrayIteratorEx::next
  48. ArrayIteratorEx::valid
  49. ArrayIteratorEx::current
  50. ArrayIteratorEx::key
  51. int(1)
  52. int(2)
  53. ArrayIteratorEx::next
  54. ArrayIteratorEx::valid