bug71980.phpt 574 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Bug #71980: Decorated/Nested Generator is Uncloseable in Finally
  3. --FILE--
  4. <?php
  5. class Dtor {
  6. public function __destruct() {
  7. echo "Dtor\n";
  8. }
  9. }
  10. function gen1() {
  11. try {
  12. foreach ([42, new Dtor] as $value) {
  13. yield $value;
  14. }
  15. } finally {
  16. echo "Finally\n";
  17. }
  18. }
  19. function gen2() {
  20. try {
  21. var_dump(new Dtor, yield);
  22. } finally {
  23. echo "Finally\n";
  24. }
  25. }
  26. $gen = gen1();
  27. $gen->rewind();
  28. unset($gen);
  29. $gen = gen2();
  30. $gen->rewind();
  31. unset($gen);
  32. ?>
  33. --EXPECT--
  34. Dtor
  35. Finally
  36. Dtor
  37. Finally