3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class MyClass { /** * A test function * * First parameter must be an object of type OtherClass */ public function test(OtherClass $a) { echo $a->var; } /** * Another test function * * First parameter must be an array */ public function test_array(array $input_array) { print_r($input_array); } /** * First parameter must be iterator */ public function test_interface(Traversable $iterator) { echo get_class($iterator); } /** * First parameter must be callable */ public function test_callable(callable $callback, $data) { call_user_func($callback, $data); } } // Another example class class OtherClass { public $var = 'Hello World'; } $myclass = new MyClass; $otherclass = new OtherClass; $foo = new OtherClass; $myclass->test($foo); // Works: Prints the array $myclass->test_array(array('a', 'b', 'c')); // Works: Prints ArrayObject $myclass->test_interface(new ArrayObject(array())); // Works: Prints int(1) $myclass->test_callable('var_dump', 1); ?>

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).
Note: hhvm uses a JIT which only kicks in after a few runs. Since we run scripts only once, hhvm always runs slower.

VersionSystem time (s)User time (s)Memory (MiB)
7.3.0rc40.0100.01097.47
7.3.0rc30.0310.00316.50
7.3.0beta10.0080.00012.68
7.3.0alpha10.0090.00012.65
7.2.60.0100.00716.86
7.2.00.0070.00719.42
7.1.200.0090.00315.61
7.1.100.0000.01318.01
7.1.70.0050.00317.10
7.1.60.0100.01419.30
7.1.50.0090.01217.06
7.1.00.0000.03722.52
7.0.200.0000.00716.69
7.0.140.0070.07022.12
7.0.120.0030.07722.05
7.0.110.0070.04720.10
7.0.100.0100.04720.12
7.0.90.0130.08320.07
7.0.80.0030.08319.92
7.0.70.0100.08020.09
7.0.60.0100.07320.03
7.0.50.0070.08019.94
7.0.40.0070.03719.85
7.0.30.0130.06719.67
7.0.20.0070.07319.81
7.0.10.0030.04319.82
7.0.00.0030.04319.69
5.6.280.0100.06720.89
5.6.260.0100.02720.74
5.6.250.0070.06020.71
5.6.240.0130.05720.48
5.6.230.0070.04020.63
5.6.220.0070.07020.70
5.6.210.0070.06720.72
5.6.200.0100.06720.63
5.6.190.0030.05020.71
5.6.180.0030.06020.69
5.6.170.0030.05320.63
5.6.160.0070.09320.56
5.6.150.0130.07720.63
5.6.140.0070.07720.70
5.6.130.0000.04320.65
5.6.120.0030.07320.62
5.6.110.0130.03720.62
5.6.100.0070.07320.64
5.6.90.0030.09020.64
5.6.80.0000.04019.95
5.6.70.0170.07019.93
5.6.60.0000.07720.02
5.6.50.0070.04020.09
5.6.40.0170.05719.93
5.6.30.0030.04019.92
5.6.20.0170.02720.00
5.6.10.0070.07720.01
5.6.00.0030.03320.00
5.5.380.0070.07717.48
5.5.370.0100.07717.69
5.5.360.0100.07317.46
5.5.350.0130.05317.55
5.5.340.0030.08718.10
5.5.330.0130.04317.91
5.5.320.0070.04018.25
5.5.310.0130.06318.15
5.5.300.0000.07717.96
5.5.290.0030.04018.25
5.5.280.0070.07718.13
5.5.270.0070.06718.13
5.5.260.0130.06318.08
5.5.250.0070.07017.74
5.5.240.0000.06317.21
5.5.230.0030.04317.46
5.5.220.0030.07317.47
5.5.210.0030.03717.43
5.5.200.0070.04317.57
5.5.190.0070.03717.45
5.5.180.0070.07317.48
5.5.160.0170.07017.31
5.5.150.0070.03317.30
5.5.140.0130.05017.25
5.5.130.0100.08017.45
5.5.120.0030.05317.42
5.5.110.0070.04017.48
5.5.100.0070.08317.50
5.5.90.0000.05717.35
5.5.80.0070.07017.38
5.5.70.0030.07717.16
5.5.60.0030.06717.34
5.5.50.0070.07317.46
5.5.40.0030.06017.17
5.5.30.0000.04017.19
5.5.20.0130.06317.46
5.5.10.0030.04017.16
5.5.00.0070.06017.29
5.4.450.0030.07019.51
5.4.440.0000.04019.34
5.4.430.0130.06719.41
5.4.420.0070.04719.36
5.4.410.0070.05719.30
5.4.400.0030.08019.04
5.4.390.0100.06319.09
5.4.380.0070.03319.23
5.4.370.0070.03719.18
5.4.360.0100.03019.24
5.4.350.0100.05019.23
5.4.340.0030.05319.31
5.4.320.0100.04019.18
5.4.310.0030.07319.24
5.4.300.0070.06319.09
5.4.290.0070.06019.01
5.4.280.0030.04018.95
5.4.270.0000.08019.24
5.4.260.0070.04019.18
5.4.250.0170.02319.15
5.4.240.0070.03318.98
5.4.230.0100.06319.00
5.4.220.0070.07019.00
5.4.210.0070.05719.00
5.4.200.0070.07019.23
5.4.190.0070.04719.30
5.4.180.0030.04019.02
5.4.170.0000.04019.16
5.4.160.0100.04318.98
5.4.150.0070.07719.22
5.4.140.0000.04316.48
5.4.130.0130.05716.48
5.4.120.0100.06316.39
5.4.110.0170.06316.52
5.4.100.0030.03316.60
5.4.90.0030.04316.63
5.4.80.0070.03716.48
5.4.70.0030.03316.70
5.4.60.0030.03316.54
5.4.50.0100.03316.45
5.4.40.0070.03716.45
5.4.30.0000.04316.48
5.4.20.0030.04016.62
5.4.10.0000.04016.58
5.4.00.0070.03715.77
5.3.290.0000.05714.67
5.3.280.0070.07014.56
5.3.270.0070.07314.58
5.3.260.0030.03714.61
5.3.250.0100.06714.63
5.3.240.0000.06714.61
5.3.230.0030.08014.64
5.3.220.0000.07014.71
5.3.210.0100.06714.65
5.3.200.0070.07714.57
5.3.190.0030.03714.66
5.3.180.0100.03014.72
5.3.170.0030.03314.80
5.3.160.0070.03314.53
5.3.150.0030.03714.80
5.3.140.0100.03014.56
5.3.130.0070.03314.57
5.3.120.0070.03714.69
5.3.110.0100.03014.63
5.3.100.0030.03714.06
5.3.90.0130.02713.88
5.3.80.0000.04014.12
5.3.70.0070.03314.25
5.3.60.0030.04014.23
5.3.50.0030.03713.91
5.3.40.0070.03714.02
5.3.30.0100.04713.89
5.3.20.0000.03713.69
5.3.10.0030.03313.76
5.3.00.0000.03713.63
5.2.170.0100.02712.06
5.2.160.0000.03012.06
5.2.150.0000.03012.06
5.2.140.0030.03012.06
5.2.130.0070.02312.06
5.2.120.0000.03012.06
5.2.110.0000.04312.06
5.2.100.0000.03012.06
5.2.90.0000.03012.06
5.2.80.0030.03012.06
5.2.70.0070.02712.06
5.2.60.0000.03012.06
5.2.50.0000.03312.06
5.2.40.0000.03712.06
5.2.30.0030.03312.06
5.2.20.0000.03012.06
5.2.10.0000.03012.06
5.2.00.0030.02712.06
5.1.60.0070.02012.06
5.1.50.0000.02712.06
5.1.40.0000.02012.06
5.1.30.0030.02012.06
5.1.20.0000.02312.06
5.1.10.0030.02012.06
5.1.00.0000.02712.06
5.0.50.0070.02012.06
5.0.40.0000.01712.06
5.0.30.0030.02312.06
5.0.20.0000.01712.06
5.0.10.0030.01312.06
5.0.00.0030.02312.06
4.4.90.0030.01312.06
4.4.80.0000.01712.06
4.4.70.0030.01312.06
4.4.60.0000.01712.06
4.4.50.0070.01012.06
4.4.40.0000.02712.06
4.4.30.0030.01312.06
4.4.20.0000.01312.06
4.4.10.0070.00712.06
4.4.00.0000.02312.06
4.3.110.0000.01312.06
4.3.100.0030.01012.06
4.3.90.0000.01312.06
4.3.80.0000.02012.06
4.3.70.0000.01312.06
4.3.60.0030.01012.06
4.3.50.0030.01012.06
4.3.40.0030.02312.06
4.3.30.0000.01312.06
4.3.20.0000.01312.06
4.3.10.0000.01312.06
4.3.00.0000.01312.06