- gc_enable: documentation ( source)
- range: documentation ( source)
<?php
class Collection extends ArrayObject {
protected $iterator;
public function getIterator() {
// Well, this is a heavy object to make, let's memoize it
if (!isset($this->iterator)) {
$this->iterator = new ArrayIterator($this);
}
return $this->iterator;
}
public function __destruct() {
unset($this->iterator);
}
}
gc_enable();
foreach (range(1, 5000000) as $i) {
$collection = new Collection([ 'foo', 'bar' ]);
foreach ($collection as $item) {
echo $item;
}
unset($collection);
}