bug68652.phpt 742 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Bug #68652 (segmentation fault in destructor)
  3. --FILE--
  4. <?php
  5. class Foo {
  6. private static $instance;
  7. public static function getInstance() {
  8. if (isset(self::$instance)) {
  9. return self::$instance;
  10. }
  11. return self::$instance = new self();
  12. }
  13. public function __destruct() {
  14. Bar::getInstance();
  15. }
  16. }
  17. class Bar {
  18. private static $instance;
  19. public static function getInstance() {
  20. if (isset(self::$instance)) {
  21. return self::$instance;
  22. }
  23. return self::$instance = new self();
  24. }
  25. public function __destruct() {
  26. if (!isset(self::$instance)) return;
  27. Foo::getInstance();
  28. }
  29. }
  30. $foo = new Foo();
  31. ?>
  32. OK
  33. --EXPECT--
  34. OK