bug42703.phpt 716 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Bug #42703 (Exception raised in an iterator::current() causes segfault in FilterIterator)
  3. --FILE--
  4. <?php
  5. class BlaIterator implements Iterator
  6. {
  7. public function rewind(): void { }
  8. public function next(): void { }
  9. public function valid(): bool {
  10. return true;
  11. }
  12. public function current(): mixed
  13. {
  14. throw new Exception('boo');
  15. }
  16. public function key(): mixed { return null; }
  17. }
  18. $it = new BlaIterator();
  19. $itit = new IteratorIterator($it);
  20. try {
  21. foreach($itit as $key => $value) {
  22. echo $key, $value;
  23. }
  24. }
  25. catch (Exception $e) {
  26. var_dump($e->getMessage());
  27. }
  28. var_dump($itit->current());
  29. var_dump($itit->key());
  30. ?>
  31. --EXPECT--
  32. string(3) "boo"
  33. NULL
  34. NULL