3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace { class Foo_MIXED extends Foo implements \MixinPHP\Mixable { public function bar() { $args = func_get_args(); if (isset($this->__methods__["bar"])) { $cb = $this->__methods__["bar"]; array_unshift($args, function() { return call_user_func_array(array($this, "bar"), func_get_args()); }); } else { $cb = array($this, "bar"); } return call_user_func_array($cb, $args); } public function baz($a, $b, stdClass $c) { $args = func_get_args(); if (isset($this->__methods__["baz"])) { $cb = $this->__methods__["baz"]; array_unshift($args, function() { return call_user_func_array(array($this, "baz"), func_get_args()); }); } else { $cb = array($this, "baz"); } return call_user_func_array($cb, $args); } private $__methods__ = array(); private $__parent__; public function __construct(Foo $object) { $this->__parent__ = $object; } public function mixWith($object) { return \MixinPHP\Mixin::mix($this, $object); } public function __get($name) { return Closure::bind(function() use ($name) { return call_user_func_array(array($this, $name), func_get_args()); }, $this); } public function __set($name, $value) { $this->__methods__[strtolower($name)] = $value; } public function __isset($name) { return isset($this->__methods__[strtolower($name)]); } public function __unset($name) { return unset($this->__methods__[strtolower($name)]); } } }

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.0190.05612.42
5.4.160.0150.04712.42
5.4.150.0150.04612.41
5.4.140.0180.04112.10
5.4.130.0200.05412.09
5.4.120.0160.04112.05
5.4.110.0120.04512.05
5.4.100.0180.04112.04
5.4.90.0110.04712.04
5.4.80.0130.04412.05
5.4.70.0210.03512.04
5.4.60.0170.03912.04
5.4.50.0210.05412.04
5.4.40.0130.04512.03
5.4.30.0190.03912.03
5.4.20.0130.04312.02
5.4.10.0130.04312.02
5.4.00.0130.04411.52
5.3.270.0310.05912.73
5.3.260.0150.04512.73
5.3.250.0160.04312.73
5.3.240.0170.04412.73
5.3.230.0200.04212.73
5.3.220.0180.04212.70
5.3.210.0160.04612.70
5.3.200.0190.04212.70
5.3.190.0150.04512.70
5.3.180.0220.03912.69
5.3.170.0160.05812.70
5.3.160.0150.04612.69
5.3.150.0160.04312.69
5.3.140.0200.05512.68
5.3.130.0170.04312.68
5.3.120.0160.04412.68
5.3.110.0140.04712.68
5.3.100.0190.04112.16
5.3.90.0150.04412.15
5.3.80.0130.04612.13
5.3.70.0150.04512.14
5.3.60.0140.04612.13
5.3.50.0150.04512.06
5.3.40.0200.05612.06
5.3.30.0120.04712.03
5.3.20.0160.04311.81
5.3.10.0160.03911.78
5.3.00.0140.04311.75

preferences:
141.25 ms | 1394 KiB | 7 Q