3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Vector { private $values; public function populate() { $this->values = range(1, 1_000_000); } public function appendMutable() { $this->values[] = 100_000_001; } public function appendImmutable() { $new = clone $this; $this->values[] = 100_000_001; } } $v = new Vector(); $v->populate(); $start = microtime(true); $v->appendMutable(); var_dump(microtime(true) - $start); $v = new Vector(); $v->populate(); $start = microtime(true); $v = $v->appendImmutable(); var_dump(microtime(true) - $start);

preferences:
27.86 ms | 406 KiB | 5 Q