3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Base { protected $foo = null; final public function __construct(Granny $init = null) { return $this->init($init); } protected function init(Granny $dependency = null); } class Granny { protected $name = null; protected $age = null; public function __construct(array $vals = null) { foreach($vals as $name => $val) { $name = 'set'.ucfirst($name); if (method_exists($this, $name)) { $this->{$name}($val); } } return $this; } //basic gettter && setters public function getAge() { return $this->age; } public function setAge($age = null) { $this->age = $age === null ? null : (int) $age; return $this; } } class Dad extends Granny { //Dad's secret private $likesMom = null; public function getLikesMom() { return $this->likesMom; } public function setLikesMom($bool = null) { $this->likesMom = $bool === null ? null : !!$bool; return $this; } } trait dependOnDad { protected function init(Dad $dependency = null) { $this->foo = $dependency; return $this; } } class Ball extends Base { use dependOnDad; } var_dump(new Ball());

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
5.4.170.0200.03719.21
5.4.160.0230.08318.83
5.4.150.0370.05719.06
5.4.140.0170.07016.42
5.4.130.0300.04716.32
5.4.120.0230.06316.35
5.4.110.0270.06016.51
5.4.100.0230.04316.24
5.4.90.0130.05016.58
5.4.80.0270.06716.54
5.4.70.0270.03316.50
5.4.60.0270.06016.25
5.4.50.0230.06316.24
5.4.40.0300.05316.43
5.4.30.0230.06016.18
5.4.20.0270.05016.34
5.4.10.0170.06716.51
5.4.00.0230.06715.76
5.3.270.0270.03714.61
5.3.260.0270.07014.68
5.3.250.0200.07314.50
5.3.240.0300.06314.52
5.3.230.0300.06714.64
5.3.220.0200.06314.61
5.3.210.0230.04714.65
5.3.200.0230.04714.59
5.3.190.0200.05714.48
5.3.180.0230.07314.46
5.3.170.0270.06714.72
5.3.160.0270.07314.72
5.3.150.0200.07014.58
5.3.140.0100.06714.46
5.3.130.0230.04014.45
5.3.120.0170.04014.48
5.3.110.0300.07014.53
5.3.100.0300.06713.96
5.3.90.0230.06014.24
5.3.80.0230.07714.09
5.3.70.0230.07014.09
5.3.60.0230.06014.22
5.3.50.0230.06014.02
5.3.40.0330.05013.96
5.3.30.0200.07313.81
5.3.20.0270.06713.85
5.3.10.0330.06313.58
5.3.00.0300.06013.88

preferences:
136.1 ms | 1394 KiB | 7 Q