3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface GoAlgorithm { public function go(); } class GoByDrivingAlgorithm implements GoAlgorithm { public function go() { echo "Now I'm driving." .PHP_EOL; } } class GoByFlying implements GoAlgorithm { public function go() { echo "Now I'm flying." . PHP_EOL; } } class GoByFlyingFast implements GoAlgorithm { public function go() { echo "Now I'm flying fast" . PHP_EOL; } } class Vehicle { private $goAlgorithm; public function __construct(GoAlgorithm $goType = null) { parent::__construct(); $this->goAlgorithm = $goType; } public function setModeOfTransportation(GoAlgorithm $goType) { $this->goAlgorithm = $goType; } public function drive() { return $this->goAlgorithm->go(); } } // setter injection $streetRacer = new Vehicle(); $streetRacer->setModeOfTransportation(new GoByDrivingAlgorithm()); $formulaone = new Vehicle(); $formulaone->setModeOfTransportation(new GoByDrivingAlgorithm()); $helicopter = new Vehicle(); $helicopter->setModeOfTransportation(new GoByFlying()); $jets = new Vehicle(); $jets->setModeOfTransportation(new GoByFlyingFast()); $streetRacer->drive(); $formulaone->drive(); $helicopter->drive(); $jets->drive(); // constructor injection $streetRacer = new Vehicle(new GoByDrivingAlgorithm()); $formulaone = new Vehicle(new GoByDrivingAlgorithm()); $helicopter = new Vehicle(new GoByFlying()); $jets = new Vehicle(new GoByFlyingFast()); $streetRacer->drive(); $formulaone->drive(); $helicopter->drive(); $jets->drive();

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.60.0070.01416.75
8.3.50.0150.00222.94
8.3.40.0110.00420.47
8.3.30.0100.00319.00
8.3.20.0040.00420.38
8.3.10.0000.00923.66
8.3.00.0080.00019.25
8.2.180.0160.00616.75
8.2.170.0030.01222.96
8.2.160.0070.00720.32
8.2.150.0040.00424.18
8.2.140.0040.00424.66
8.2.130.0000.00726.16
8.2.120.0040.00421.09
8.2.110.0090.00021.06
8.2.100.0040.00817.78
8.2.90.0040.00419.09
8.2.80.0030.00517.97
8.2.70.0030.00517.35
8.2.60.0040.00417.68
8.2.50.0040.00418.10
8.2.40.0000.00817.82
8.2.30.0040.00417.90
8.2.20.0040.00417.59
8.2.10.0030.00617.86
8.2.00.0040.00417.57
8.1.280.0150.00025.92
8.1.270.0040.00423.83
8.1.260.0080.00026.35
8.1.250.0040.00428.09
8.1.240.0030.00722.38
8.1.230.0110.00017.77
8.1.220.0040.00417.74
8.1.210.0000.00818.77
8.1.200.0060.00317.11
8.1.190.0080.00016.98
8.1.180.0040.00418.10
8.1.170.0040.00418.57
8.1.160.0000.00721.88
8.1.150.0040.00418.81
8.1.140.0030.00517.35
8.1.130.0080.00017.77
8.1.120.0000.00717.24
8.1.110.0000.00817.28
8.1.100.0070.00017.37
8.1.90.0000.00717.36
8.1.80.0040.00417.33
8.1.70.0070.00017.23
8.1.60.0050.00317.49
8.1.50.0030.00517.42
8.1.40.0040.00417.45
8.1.30.0080.00017.47
8.1.20.0030.00617.44
8.1.10.0050.00317.42
8.1.00.0000.00817.23
8.0.300.0040.00420.03
8.0.290.0040.00416.63
8.0.280.0030.00318.21
8.0.270.0000.00717.26
8.0.260.0000.00617.21
8.0.250.0030.00316.87
8.0.240.0070.00016.82
8.0.230.0030.00516.91
8.0.220.0030.00316.85
8.0.210.0080.00016.79
8.0.200.0030.00316.95
8.0.190.0030.00716.81
8.0.180.0000.00716.91
8.0.170.0050.00216.86
8.0.160.0000.00716.85
8.0.150.0050.00316.84
8.0.140.0050.00216.70
8.0.130.0050.00013.37
8.0.120.0000.00716.74
8.0.110.0070.00016.90
8.0.100.0080.00016.92
8.0.90.0000.00716.71
8.0.80.0070.01316.82
8.0.70.0080.00016.79
8.0.60.0100.00016.94
8.0.50.0070.00016.96
8.0.30.0050.01316.93
8.0.20.0130.00817.40
8.0.10.0040.00417.00
8.0.00.0120.00816.63
7.4.330.0060.00015.00
7.4.320.0000.00716.55
7.4.300.0000.00616.48
7.4.290.0030.00316.42
7.4.280.0040.00416.60
7.4.270.0030.00516.63
7.4.260.0080.00316.61
7.4.250.0040.00416.54
7.4.240.0060.00116.58
7.4.230.0000.00716.30
7.4.220.0070.01416.57
7.4.210.0090.00616.63
7.4.200.0030.00516.70
7.4.160.0080.00816.61
7.4.150.0090.00917.40
7.4.140.0070.01417.86
7.4.130.0110.00916.65
7.4.120.0100.01016.50
7.4.110.0090.00916.41
7.4.100.0060.01216.37
7.4.90.0070.01016.43
7.4.80.0070.01119.39
7.4.70.0070.01116.58
7.4.60.0100.00716.71
7.4.50.0000.00816.60
7.4.40.0130.00316.73
7.4.30.0160.00616.45
7.4.00.0100.00714.96
7.3.330.0060.00013.39
7.3.320.0020.00213.20
7.3.310.0000.00716.16
7.3.300.0030.00316.27
7.3.290.0030.01016.40
7.3.280.0060.01016.42
7.3.270.0140.00617.40
7.3.260.0130.00616.45
7.3.250.0090.00816.48
7.3.240.0060.00916.38
7.3.230.0060.01016.55
7.3.210.0110.00616.30
7.3.200.0100.01019.39
7.3.190.0070.01016.34
7.3.180.0100.00616.33
7.3.170.0060.01116.52
7.3.160.0040.01116.55
7.2.330.0130.01016.29
7.2.320.0130.01016.63
7.2.310.0070.01716.74
7.2.300.0130.00316.40
7.2.290.0070.01016.23
7.2.60.0000.01316.69
7.1.200.0040.00815.28
7.1.70.0000.00716.92
7.1.60.0090.00919.40
7.1.50.0090.00316.84
7.1.00.0030.07322.35
7.0.200.0330.00316.58
7.0.140.0030.07322.15
7.0.60.0070.08019.99
7.0.50.0100.04017.96
7.0.40.0030.09320.11
7.0.30.0370.04720.08
7.0.20.0370.06720.09
7.0.10.0070.09020.24
7.0.00.0070.04320.15
5.6.280.0070.07021.07
5.6.210.0000.04720.56
5.6.200.0070.08018.28
5.6.190.0000.05320.48
5.6.180.0300.05020.41
5.6.170.0270.08320.50
5.6.160.0070.08320.39
5.6.150.0000.08718.22
5.6.140.0100.06018.14
5.6.130.0000.05318.21
5.6.120.0100.06720.90
5.6.110.0030.05721.12
5.6.100.0130.07321.01
5.6.90.0230.06321.15
5.6.80.0070.07320.40
5.6.70.4370.04320.41
5.5.350.0070.03320.41
5.5.340.0070.04318.02
5.5.330.0100.07320.38
5.5.320.0230.04020.32
5.5.310.0230.04320.32
5.5.300.0070.05018.05
5.5.290.0100.05717.95
5.5.280.0070.05320.80
5.5.270.0030.04320.89
5.5.260.0100.08320.79
5.5.250.0070.05720.61
5.5.240.0030.07020.29
5.4.450.0800.03319.41
5.4.440.0670.03719.52
5.4.430.0330.04019.45
5.4.420.0830.04719.29
5.4.410.0330.03319.41
5.4.400.0600.03018.98
5.4.390.0770.04319.20
5.4.380.0270.05018.61
5.4.370.0200.06018.75
5.4.360.0270.04718.71
5.4.350.0100.07018.79
5.4.340.0070.06718.61
5.4.320.0050.03812.54
5.4.310.0060.03812.53
5.4.300.0050.03812.53
5.4.290.0080.03612.53
5.4.280.0070.03512.42
5.4.270.0050.03712.42
5.4.260.0050.03812.42
5.4.250.0090.04012.42
5.4.240.0050.03712.42
5.4.230.0040.04012.41
5.4.220.0050.03712.41
5.4.210.0070.03712.41
5.4.200.0130.03812.42
5.4.190.0100.04312.41
5.4.180.0050.03812.41
5.4.170.0050.03812.42
5.4.160.0090.03412.42
5.4.150.0080.03512.41
5.4.140.0040.03912.10
5.4.130.0050.03612.09
5.4.120.0040.03912.04
5.4.110.0090.03212.04
5.4.100.0060.04412.04
5.4.90.0040.03812.04
5.4.80.0050.04812.04
5.4.70.0050.03912.04
5.4.60.0060.03912.04
5.4.50.0060.03512.04
5.4.40.0060.03412.02
5.4.30.0030.03812.02
5.4.20.0030.03812.02
5.4.10.0050.03512.02
5.4.00.0080.03411.52
5.3.290.0090.04012.80
5.3.280.0060.03812.71
5.3.270.0050.03912.72
5.3.260.0050.04312.71
5.3.250.0050.03912.72
5.3.240.0030.04012.72
5.3.230.0030.04012.71
5.3.220.0060.03712.68
5.3.210.0050.04012.68
5.3.200.0060.03612.68
5.3.190.0070.03912.68
5.3.180.0070.03712.68
5.3.170.0100.03512.68
5.3.160.0080.04112.68
5.3.150.0100.03812.68
5.3.140.0050.03712.67
5.3.130.0050.04012.66
5.3.120.0090.03712.66
5.3.110.0050.04112.66
5.3.100.0110.03512.15
5.3.90.0060.03912.13
5.3.80.0070.03612.12
5.3.70.0070.03912.12
5.3.60.0050.04612.11
5.3.50.0030.03912.05
5.3.40.0080.03512.05
5.3.30.0050.03712.02
5.3.20.0060.04011.79
5.3.10.0060.03811.76
5.3.00.0080.03411.75
5.2.170.0080.0329.25
5.2.160.0050.0289.25
5.2.150.0060.0369.25
5.2.140.0080.0279.25
5.2.130.0060.0309.21
5.2.120.0040.0339.21
5.2.110.0070.0299.21
5.2.100.0060.0309.21
5.2.90.0030.0319.21
5.2.80.0060.0299.20
5.2.70.0040.0329.20
5.2.60.0060.0289.16
5.2.50.0050.0349.13
5.2.40.0020.0319.11
5.2.30.0090.0329.08
5.2.20.0080.0359.07
5.2.10.0050.0408.98
5.2.00.0030.0298.84
5.1.60.0040.0288.13
5.1.50.0050.0288.12
5.1.40.0060.0238.10
5.1.30.0040.0268.45
5.1.20.0030.0278.47
5.1.10.0040.0278.20
5.1.00.0040.0278.20
5.0.50.0030.0216.68
5.0.40.0030.0216.54
5.0.30.0010.0336.35
5.0.20.0050.0216.32
5.0.10.0050.0186.30
5.0.00.0040.0306.29
4.4.90.0020.0164.78
4.4.80.0020.0164.75
4.4.70.0030.0164.75
4.4.60.0030.0194.76
4.4.50.0040.0184.77
4.4.40.0040.0294.71
4.4.30.0010.0184.76
4.4.20.0020.0164.85
4.4.10.0060.0134.85
4.4.00.0020.0324.76
4.3.110.0010.0224.67
4.3.100.0040.0184.67
4.3.90.0040.0184.63
4.3.80.0040.0294.58
4.3.70.0060.0164.63
4.3.60.0030.0134.63
4.3.50.0050.0204.63
4.3.40.0030.0254.54
4.3.30.0020.0163.28
4.3.20.0010.0233.26
4.3.10.0030.0193.22
4.3.00.0000.01715.96

preferences:
122.01 ms | 401 KiB | 5 Q