首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[函数]gc_collect_cycles()函数—用法及示例

发布于 2025-04-26 08:55:40
0
35

函数名: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,表示成功回收了两个循环引用对象。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流