gc_041.phpt 556 B

1234567891011121314151617181920212223242526272829303132333435
  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. gc_collect_cycles();
  22. var_dump($x);
  23. ?>
  24. --EXPECT--
  25. object(ryat)#1 (3) {
  26. ["ryat"]=>
  27. *RECURSION*
  28. ["chtg"]=>
  29. *RECURSION*
  30. ["nested"]=>
  31. &array(1) {
  32. [0]=>
  33. *RECURSION*
  34. }
  35. }