(PHP 5 >= 5.3.0, PHP 7, PHP 8)
gc_collect_cycles — Forces collection of any existing garbage cycles
This function has no parameters.
Returns number of collected cycles.
(Since this function wasn't documented as of the date I left this note...)
If you came here looking for documentation, allow me to point you instead to a section in the user manual about garbage collection that includes a bit at the end about when you would use this feature and what it will actually do: http://php.net/manual/en/features.gc.collecting-cycles.php
Hope it helps!
<?php gc_collect_cycles(); ?> triggers PHP's garbage collector to explicitly search for and clean up circular references - objects that reference each other but are no longer accessible by the program.
Although PHP's garbage collector runs automatically, in long-running scripts or memory-intensive operations (such as daemons, CLI tools, or large loops), calling this function manually can help reduce memory usage and prevent memory leaks.
Example:
<?php
class Node {
public $ref;
}
$a = new Node();
$b = new Node();
$a->ref = $b;
$b->ref = $a;
unset($a, $b);
// At this point, $a and $b are no longer accessible, but the circular reference remains in memory.
// Force cleanup:
$collected = gc_collect_cycles();
echo "Collected cycles: $collected\n";
?>