gc_collect_cycles()

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

首字母:G

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

同首字母函数