3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Leak { static protected function &leaked(array &$array = null) { $array = array('one'); return $array; } public function toLeaked($array = null) { $array = static::leaked($array); return $array; } public function testLeak() { echo "memory before loop: " . memory_get_usage(true) . PHP_EOL; for ($i = 0; $i < 20000; $i++) { $leak = $this->toLeaked(); } gc_collect_cycles(); echo "memory after loop: " . memory_get_usage(true) . PHP_EOL; } } $leak = new Leak(); $leak->testLeak();
Output for 7.0.20, 7.1.0 - 7.1.7, 7.2.0
memory before loop: 2097152 memory after loop: 2097152
Output for 7.0.0 - 7.0.14
memory before loop: 2097152 memory after loop: 10485760

preferences:
54.43 ms | 401 KiB | 27 Q