查询

gc_collect_cycles()函数—用法及示例

「 强制执行 PHP 垃圾回收器,可以回收循环引用的对象 」


函数名:gc_collect_cycles()

适用版本:PHP 5 >= 5.3.0, PHP 7

用法:gc_collect_cycles() 函数用于强制执行 PHP 垃圾回收器,可以回收循环引用的对象。

示例:

class MyClass {
    public $otherObj;
    
    public function __construct() {
        $this->otherObj = new OtherClass();
    }
}

class OtherClass {
    public $myObj;
    
    public function __construct() {
        $this->myObj = new MyClass();
    }
}

$obj1 = new MyClass();
$obj2 = new MyClass();

// 将对象相互引用,形成循环引用
$obj1->otherObj->myObj = $obj2;
$obj2->otherObj->myObj = $obj1;

// 执行垃圾回收
gc_collect_cycles();

// 检查对象是否被回收
var_dump(gc_enabled()); // 输出: bool(true)
var_dump(gc_collect_cycles()); // 输出: int(2)

在上面的示例中,我们创建了两个对象 $obj1$obj2,并相互引用,形成循环引用。然后,我们调用 gc_collect_cycles() 函数来强制执行垃圾回收。最后,使用 gc_enabled() 函数检查垃圾回收是否启用,并使用 gc_collect_cycles() 函数获取回收的循环引用对象的数量。在这个例子中,输出的结果是 2,表示成功回收了两个循环引用对象。

补充纠错
上一个函数: gc_disable()函数
下一个函数: fwrite()函数
热门PHP函数
分享链接