array_019.phpt 773 B

1234567891011121314151617181920212223242526272829303132
  1. --TEST--
  2. SPL: ArrayIterator and foreach by reference
  3. --FILE--
  4. <?php
  5. $ar = new ArrayObject(array(1)); foreach($ar as &$v) var_dump($v);
  6. $ar = new ArrayIterator(array(2)); foreach($ar as &$v) var_dump($v);
  7. $ar = new RecursiveArrayIterator(array(3)); foreach($ar as &$v) var_dump($v);
  8. class ArrayIteratorEx extends ArrayIterator
  9. {
  10. function current(): mixed
  11. {
  12. return ArrayIterator::current();
  13. }
  14. }
  15. $ar = new ArrayIteratorEx(array(4)); foreach($ar as $v) var_dump($v);
  16. $ar = new ArrayIteratorEx(array(5)); foreach($ar as &$v) var_dump($v);
  17. ?>
  18. ===DONE===
  19. --EXPECTF--
  20. int(1)
  21. int(2)
  22. int(3)
  23. int(4)
  24. Fatal error: Uncaught Error: An iterator cannot be used with foreach by reference in %s:%d
  25. Stack trace:
  26. #0 {main}
  27. thrown in %s on line %d