gc_041.phpt 583 B

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. GC 041: Handling of references in nested data of objects with destructor
  3. --INI--
  4. zend.enable_gc = 1
  5. --FILE--
  6. <?php
  7. class ryat {
  8. var $ryat;
  9. var $chtg;
  10. var $nested;
  11. function __destruct() {
  12. $GLOBALS['x'] = $this;
  13. }
  14. }
  15. $o = new ryat;
  16. $o->nested = [];
  17. $o->nested[] =& $o->nested;
  18. $o->ryat = $o;
  19. $x =& $o->chtg;
  20. unset($o);
  21. var_dump(gc_collect_cycles());
  22. var_dump($x);
  23. ?>
  24. --EXPECT--
  25. int(0)
  26. object(ryat)#1 (3) {
  27. ["ryat"]=>
  28. *RECURSION*
  29. ["chtg"]=>
  30. *RECURSION*
  31. ["nested"]=>
  32. &array(1) {
  33. [0]=>
  34. *RECURSION*
  35. }
  36. }