bug30725.phpt 413 B

123456789101112131415161718192021222324252627282930
  1. --TEST--
  2. Bug #30725 (PHP segfaults when an exception is thrown in getIterator() within foreach)
  3. --FILE--
  4. <?php
  5. class Test implements IteratorAggregate
  6. {
  7. function getIterator(): Traversable
  8. {
  9. throw new Exception();
  10. }
  11. }
  12. try
  13. {
  14. $it = new Test;
  15. foreach($it as $v)
  16. {
  17. echo "Fail\n";
  18. }
  19. echo "Wrong\n";
  20. }
  21. catch(Exception $e)
  22. {
  23. echo "Caught\n";
  24. }
  25. ?>
  26. --EXPECT--
  27. Caught