1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
--TEST--
GC 029: GC and destructors
--SKIPIF--
<?php if (PHP_ZTS) { print "skip only for no-zts build"; }
--INI--
zend.enable_gc=1
--FILE--
<?php
class Foo {
public $bar;
public $x = array(1,2,3);
function __destruct() {
if ($this->bar !== null) {
$this->x = null;
unset($this->bar);
}
}
}
class Bar {
public $foo;
function __destruct() {
if ($this->foo !== null) {
unset($this->foo);
}
}
}
$foo = new Foo();
$bar = new Bar();
$foo->bar = $bar;
$bar->foo = $foo;
unset($foo);
unset($bar);
var_dump(gc_collect_cycles());
?>
--EXPECT--
int(2)
|