3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface Serialize { public function store(array $data); public function recover(); } abstract class MyObject implements Serialize { protected $a; protected $data; public function __construct($a = null) { $this->a = $a; } public function __set($index, $value) { // omito comprobaciones.. si la propiedad no existe la creara como public (si recuerdo bien) $this->$index = $value; } public function __get($index) { return $this->$index; } /* * Al implementar el interfaz, tenemos que definir sus metodos * Uso un typehint, indicando que el parametro es array, y dara un Fatal Error en caso contrario */ public function store(array $data) { $this->data = $data; } public function recover() { return $this->data; } public function foo() { echo 'Hello World!'; } } /* * Clase A extiende MyObject que a la vez implementa el interfaz Serializable (se pueden implementar varios interfaces a la vez * y es la unica forma de crear una clase hija que extienda de dos clases padre... algo que de normal no se puede hacer en PHP) */ class A extends MyObject { protected $b; public function __construct($a, $b) { $this->b = $b; parent::__construct($a); } public function foo($a = null) { $str = $a ? $a : $this->a; echo "Hello $str".PHP_EOL; } } $a = new A('foo', 'var'); $a->store(array(1, 2, 3)); var_dump($a->recover()); $a->foo('test'); $a->foo();

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)
8.3.40.0130.00318.84
8.3.30.0220.00018.59
8.3.20.0040.00418.63
8.3.10.0060.00318.63
8.3.00.0030.00619.13
8.2.170.0140.00722.96
8.2.160.0040.01218.82
8.2.150.0040.00424.18
8.2.140.0030.00624.66
8.2.130.0080.00026.16
8.2.120.0090.00019.55
8.2.110.0150.00620.53
8.2.100.0090.00317.91
8.2.90.0050.00317.75
8.2.80.0030.00718.84
8.2.70.0000.00917.59
8.2.60.0080.00017.93
8.2.50.0000.00818.05
8.2.40.0000.00819.95
8.2.30.0060.00317.65
8.2.20.0060.00317.69
8.2.10.0000.00717.83
8.2.00.0030.00617.59
8.1.270.0050.00323.99
8.1.260.0000.00826.35
8.1.250.0040.00428.09
8.1.240.0100.01320.75
8.1.230.0110.00020.90
8.1.220.0000.00817.74
8.1.210.0050.00318.77
8.1.200.0040.00417.25
8.1.190.0050.00317.35
8.1.180.0050.00518.10
8.1.170.0030.00618.59
8.1.160.0000.00719.07
8.1.150.0040.00718.58
8.1.140.0000.00717.39
8.1.130.0040.00419.24
8.1.120.0030.00317.49
8.1.110.0070.00017.50
8.1.100.0040.00417.42
8.1.90.0050.00317.46
8.1.80.0000.00717.38
8.1.70.0000.00717.39
8.1.60.0050.00317.50
8.1.50.0000.00717.59
8.1.40.0040.00417.61
8.1.30.0060.00317.66
8.1.20.0060.00617.58
8.1.10.0000.00917.52
8.1.00.0030.00517.38
8.0.300.0040.00418.77
8.0.290.0000.00816.63
8.0.280.0030.00318.48
8.0.270.0030.00317.25
8.0.260.0000.00716.89
8.0.250.0040.00717.01
8.0.240.0000.00817.01
8.0.230.0040.00416.88
8.0.220.0040.00416.90
8.0.210.0030.00316.93
8.0.200.0030.00316.90
8.0.190.0000.00816.92
8.0.180.0000.00716.90
8.0.170.0060.00316.85
8.0.160.0030.00516.92
8.0.150.0030.00616.87
8.0.140.0000.00716.78
8.0.130.0060.00013.35
8.0.120.0080.00016.78
8.0.110.0040.00416.97
8.0.100.0020.00516.98
8.0.90.0000.00816.96
8.0.80.0090.00616.86
8.0.70.0000.00716.78
8.0.60.0000.00817.01
8.0.50.0000.00816.88
8.0.30.0170.00317.22
8.0.20.0110.00817.15
8.0.10.0050.00216.91
8.0.00.0090.01216.88
7.4.330.0050.00013.02
7.4.320.0030.00316.44
7.4.300.0070.00016.59
7.4.290.0040.00416.46
7.4.280.0000.00716.59
7.4.270.0030.00316.63
7.4.260.0050.00013.32
7.4.250.0080.00016.60
7.4.240.0070.00016.65
7.4.230.0000.00716.38
7.4.220.0090.01216.42
7.4.210.0060.01016.61
7.4.200.0070.00016.62
7.4.190.0040.00416.57
7.4.160.0090.00616.57
7.4.150.0130.00616.53
7.4.140.0070.01417.86
7.4.130.0060.01916.55
7.4.120.0000.01716.67
7.4.110.0070.01116.75
7.4.100.0150.00316.66
7.4.90.0120.00616.63
7.4.80.0070.01419.39
7.4.70.0080.00816.52
7.4.60.0110.00516.38
7.4.50.0030.00316.44
7.4.40.0030.01016.48
7.4.30.0090.00916.53
7.4.00.0050.01315.13
7.3.330.0030.00313.38
7.3.320.0050.00013.35
7.3.310.0070.00016.40
7.3.300.0020.00516.26
7.3.290.0090.00616.39
7.3.280.0100.01116.43
7.3.270.0070.01016.69
7.3.260.0150.00316.56
7.3.240.0080.00816.37
7.3.230.0110.00516.38
7.3.210.0100.00716.31
7.3.200.0040.01216.42
7.3.190.0030.01316.56
7.3.180.0090.00616.30
7.3.170.0090.00916.58
7.3.160.0150.00616.32
7.3.120.0030.01114.80
7.3.110.0060.01314.57
7.3.100.0090.00614.82
7.3.90.0040.01115.05
7.3.80.0090.00615.00
7.3.70.0040.01114.57
7.3.60.0060.00314.74
7.3.50.0080.00514.95
7.3.40.0040.00714.64
7.3.30.0060.00614.72
7.3.20.0030.00716.50
7.3.10.0080.00416.70
7.3.00.0090.00316.61
7.2.330.0160.00616.45
7.2.320.0040.01516.61
7.2.310.0130.00516.77
7.2.300.0090.00916.84
7.2.290.0060.01016.75
7.2.250.0030.01215.03
7.2.240.0070.01414.98
7.2.230.0070.00314.64
7.2.220.0070.01314.91
7.2.210.0100.00614.93
7.2.200.0030.01115.03
7.2.190.0030.00715.04
7.2.180.0000.01214.98
7.2.170.0000.01815.15
7.2.00.0070.00719.21
7.1.330.0100.00315.70
7.1.320.0040.01115.87
7.1.310.0110.00315.83
7.1.300.0030.00715.64
7.1.290.0100.00315.60
7.1.280.0030.00615.56
7.1.270.0030.00715.91
7.1.260.0100.00315.75
7.1.100.0040.01118.41
7.1.70.0000.01417.22
7.1.60.0070.01419.25
7.1.50.0000.01616.98
7.1.00.0000.07322.42
7.0.200.0040.00716.53
7.0.140.0100.06721.95
7.0.120.0030.06722.09
7.0.60.0070.04319.94
7.0.50.0100.04317.91
7.0.40.0030.04320.30
7.0.30.0300.07720.13
7.0.20.0230.07320.15
7.0.10.0070.04320.24
7.0.00.0070.04720.10
5.6.280.0070.06721.09
5.6.210.0000.04320.52
5.6.200.0070.06018.18
5.6.190.0100.07320.68
5.6.180.0200.04720.42
5.6.170.0330.04720.62
5.6.160.0030.05720.50
5.6.150.0100.07718.29
5.6.140.0030.04018.21
5.6.130.0030.08318.29
5.6.120.0030.08721.03
5.6.110.0030.08720.90
5.6.100.0030.07021.02
5.6.90.0070.07021.00
5.6.80.0130.07020.52
5.6.70.4230.04020.41
5.5.350.0100.07720.45
5.5.340.0100.07018.04
5.5.330.0100.08320.56
5.5.320.0300.07320.33
5.5.310.0230.06320.34
5.5.300.0070.04018.07
5.5.290.0070.07718.07
5.5.280.0030.09020.75
5.5.270.0070.08720.81
5.5.260.0030.07720.78
5.5.250.0100.04720.60
5.5.240.0230.07720.24
5.4.450.0330.03719.20
5.4.440.0300.04019.47
5.4.430.0370.07319.63
5.4.420.0370.06319.39
5.4.410.0330.06019.14
5.4.400.0370.07018.86
5.4.390.0330.04318.87
5.4.380.0400.06018.85
5.4.370.0300.03718.89
5.4.360.0330.06018.85
5.4.350.0230.04718.85
5.4.340.0300.04019.24
5.4.320.0370.06319.22
5.4.310.0330.05019.24
5.4.300.0270.05318.96
5.4.290.0470.06019.08
5.4.280.0430.05318.87
5.4.270.0470.06019.06
5.4.260.0470.06319.04
5.4.250.0370.03319.07
5.4.240.0470.06019.08
5.4.230.0400.05319.21
5.4.220.0270.04719.24
5.4.210.0470.06018.84
5.4.200.0270.04319.23
5.4.190.0430.04319.05
5.4.180.0270.04018.93
5.4.170.0330.05019.05
5.4.160.0500.06018.96
5.4.150.0430.04719.20
5.4.140.0330.04016.43
5.4.130.0430.02716.40
5.4.120.0330.04016.72
5.4.110.0330.04316.50
5.4.100.0300.04316.50
5.4.90.0400.03316.64
5.4.80.0470.04316.31
5.4.70.0270.06016.51
5.4.60.0370.03716.43
5.4.50.0300.05016.26
5.4.40.0470.05716.53
5.4.30.0430.07016.34
5.4.20.0330.05016.51
5.4.10.0400.04716.52
5.4.00.0300.04015.90
5.3.290.0400.07014.61
5.3.280.0470.05314.54
5.3.270.0370.05314.59
5.3.260.0370.04014.71
5.3.250.0470.06714.70
5.3.240.0300.04314.52
5.3.230.0400.04314.53
5.3.220.0270.04714.56
5.3.210.0470.06014.50
5.3.200.0270.03714.56
5.3.190.0370.03714.51
5.3.180.0370.06714.70
5.3.170.0330.04014.63
5.3.160.0370.06714.56
5.3.150.0370.06714.74
5.3.140.0300.03714.47
5.3.130.0400.04314.58
5.3.120.0430.05314.54
5.3.110.0430.06314.68
5.3.100.0600.03314.17
5.3.90.0530.06714.26
5.3.80.0430.05713.95
5.3.70.0470.06013.93
5.3.60.0500.04014.10
5.3.50.0400.07013.94
5.3.40.0500.03714.12
5.3.30.0430.04313.90
5.3.20.0400.06713.62
5.3.10.0370.04013.80
5.3.00.0270.07013.60
5.2.170.0400.05311.55
5.2.160.0300.04011.55
5.2.150.0400.05711.55
5.2.140.0400.04711.55
5.2.130.0400.05011.55
5.2.120.0270.03311.55
5.2.110.0370.05311.55
5.2.100.0270.04011.55
5.2.90.0430.04011.55
5.2.80.0230.04011.55
5.2.70.0300.03311.55
5.2.60.0430.04011.55
5.2.50.0330.05011.55
5.2.40.0230.04011.55
5.2.30.0170.04011.55
5.2.20.0200.03711.55
5.2.10.0300.05311.55
5.2.00.0230.04011.55
5.1.60.0330.04311.55
5.1.50.0300.03011.55
5.1.40.0330.04711.55
5.1.30.0370.02711.55
5.1.20.0330.02011.55
5.1.10.0330.02711.55
5.1.00.0300.05011.55
5.0.50.0170.02311.55
5.0.40.0200.03711.55
5.0.30.0130.02711.55
5.0.20.0130.02711.55
5.0.10.0170.02011.55
5.0.00.0230.05011.55
4.4.90.0170.03011.55
4.4.80.0130.02011.55
4.4.70.0170.01311.55
4.4.60.0130.02011.55
4.4.50.0170.02311.55
4.4.40.0130.02311.55
4.4.30.0130.01711.55
4.4.20.0130.01311.55
4.4.10.0130.02311.55
4.4.00.0170.03711.55
4.3.110.0130.01711.55
4.3.100.0130.03311.55
4.3.90.0170.03311.55
4.3.80.0170.04711.55
4.3.70.0130.03311.55
4.3.60.0170.03011.55
4.3.50.0230.01311.55
4.3.40.0130.03011.55
4.3.30.0070.03711.55
4.3.20.0100.02711.55
4.3.10.0070.02011.55
4.3.00.0070.02311.55

preferences:
54.69 ms | 400 KiB | 5 Q