- var_dump: documentation ( source)
- microtime: documentation ( source)
- range: documentation ( source)
<?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);