3v4l.org

run code in 300+ PHP versions simultaneously
<?php class ValidationSet { private $validators = []; public function registerValidator($name, callable $callback) { $this->validators[$name] = $callback; } public function getValidator($name) { if (!isset($this->validators[$name])) { throw new YUNOMAEKSENSEException('U IZ A DUMASS'); } } } class ValidationSet { public function $validators; public function construct(array $validators) { $this->validators = $validators; } public function applyTo($value) { foreach ($this->validators as $validator) { if ($validator($value) === false) { return false; } } return true; } } public function ValidationSetBuilderFactoryFactoryProviderFactory { private $validationSet; public function __construct(ValidationSet $validationSet) { $this->registry = $validationSet; } public function create(/* ...$validators */) { $validators = []; foreach (func_get_args() as $validatorName) { $validators[] = $this->validationSet->getValidator($validatorName); } return new ValidationSet($validators); } }

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.310.3630.04018.98
5.4.300.4000.03019.13
5.4.290.4230.03718.96
5.4.280.4370.05019.04
5.4.270.3630.04019.14
5.4.260.3770.04019.21
5.4.250.3730.03319.03
5.4.240.3670.04019.20
5.4.230.3800.02719.04
5.4.220.3700.03718.92
5.4.210.3800.04019.23
5.4.200.3800.03719.23
5.4.190.3930.04019.23
5.4.180.4100.03319.13
5.4.170.3600.03719.14
5.4.160.3570.03719.18
5.4.150.3700.03719.10
5.4.140.3870.04016.40
5.4.130.4130.04716.43
5.4.120.4370.03716.44
5.4.110.3970.04016.53
5.4.100.3800.03716.57
5.4.90.3330.03316.57
5.4.80.0200.05716.39
5.4.70.3870.03716.57
5.4.60.3370.04016.35
5.4.50.3700.03316.20
5.4.40.3730.03316.61
5.4.30.3970.03316.41
5.4.20.4400.04016.52
5.4.10.3970.03016.46
5.4.00.3700.03715.79
5.3.290.3870.03314.69
5.3.280.3670.03714.60
5.3.270.3870.04014.77
5.3.260.3800.04014.63
5.3.250.3870.04014.62
5.3.240.4100.04014.61
5.3.230.4330.04014.48
5.3.220.3930.03714.59
5.3.210.3930.03714.58
5.3.200.3530.04314.57
5.3.190.0000.08314.48
5.3.180.0070.08014.59
5.3.170.2730.04314.55
5.3.160.3970.03014.49
5.3.150.3800.03714.55
5.3.140.3930.03014.70
5.3.130.4000.03314.59
5.3.120.3870.03314.55
5.3.110.3670.04314.62
5.3.100.3730.03014.11
5.3.90.3770.03014.07
5.3.80.3870.04013.98
5.3.70.4030.03014.17
5.3.60.3470.03014.15
5.3.50.0000.04313.97
5.3.40.0700.03713.90
5.3.30.3600.03713.87
5.3.20.3930.03313.68
5.3.10.3670.02713.71
5.3.00.3630.03713.66
5.2.170.0030.02711.20
5.2.160.0070.05011.06
5.2.150.2770.03011.11
5.2.140.3830.03011.13
5.2.130.3030.03010.98
5.2.120.3330.03011.13
5.2.110.3170.02711.25
5.2.100.2970.02711.26
5.2.90.3300.03011.17
5.2.80.2630.03011.05
5.2.70.2970.03311.15
5.2.60.3000.02711.00
5.2.50.3270.03011.16
5.2.40.2500.02711.14
5.2.30.2500.02710.93
5.2.20.2400.02710.96
5.2.10.2470.02710.82
5.2.00.2470.02710.68
5.1.60.2530.02310.01
5.1.50.3300.02010.07
5.1.40.2800.0239.96
5.1.30.3830.03310.43
5.1.20.2770.02310.34
5.1.10.3100.02710.11
5.1.00.3130.02010.21
5.0.50.1570.0178.54
5.0.40.1770.0238.45
5.0.30.1870.0278.21
5.0.20.1800.0178.10
5.0.10.1500.0138.14
5.0.00.1770.0338.18
4.4.90.1230.0135.82
4.4.80.1230.0135.92
4.4.70.1400.0175.84
4.4.60.1470.0175.76
4.4.50.1530.0135.93
4.4.40.1470.0305.93
4.4.30.1470.0175.77
4.4.20.1530.0105.84
4.4.10.1130.0105.89
4.4.00.1730.0235.95
4.3.110.1470.0135.84
4.3.100.1670.0105.70
4.3.90.1470.0135.78
4.3.80.1600.0235.71
4.3.70.1170.0135.79
4.3.60.1630.0205.68
4.3.50.1500.0135.84
4.3.40.1770.0205.75
4.3.30.0930.0235.24
4.3.20.0930.0235.24
4.3.10.0830.0205.24
4.3.00.0930.0205.24

preferences:
144.79 ms | 1394 KiB | 7 Q