3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class WorkUnitDataType { //============================================== // consts / vars //============================================== const NoneDataType = 0; const BoolDataType = 1; const StringDataType = 2; const ArrayDataType = 3; const JsonDataType = 4; const UrlDataType = 5; const FileDataType = 6; private $value; private $name; //============================================== // construct //============================================== protected function __construct() { $this->setByName(get_class($this)); } protected function setByValue($value) { if (is_int($value)) { $this->value = $value; $this->name = WorkUnitDataType::getNameFromValue($value); } } protected function setByName($name) { if (is_string($name)) { $this->value = WorkUnitDataType::getValueFromName($name); $this->name = $name; } } //============================================== // accessing //============================================== public function toString() { return $this->name; } public function toValue() { return $this->value; } //============================================== // convenience //============================================== public static function NoneDataType() { return new NoneDataType();} public static function BoolDataType() { return new BoolDataType();} public static function StringDataType() { return new StringDataType();} public static function ArrayDataType() { return new ArrayDataType();} public static function JsonDataType() { return new JsonDataType();} public static function UrlDataType() { return new UrlDataType();} public static function FileDataType() { return new FileDataType();} //============================================== // utility //============================================== public static function getNameFromValue($const) { $class = new ReflectionClass('WorkUnitDataType'); $constants = $class->getConstants(); foreach ($constants as $name => $value) { if ($value == $const) { return $name; } } return Null; } public static function getValueFromName($text) { $class = new ReflectionClass('WorkUnitDataType'); $constants = $class->getConstants(); foreach ($constants as $name => $value) { if ($name == $text) { return $value; } } return -1; } } class NoneDataType extends WorkUnitDataType {} class BoolDataType extends WorkUnitDataType {} class StringDataType extends WorkUnitDataType {} class ArrayDataType extends WorkUnitDataType {} class JsonDataType extends WorkUnitDataType {} class UrlDataType extends WorkUnitDataType {} class FileDataType extends WorkUnitDataType {} $a = WorkUnitDataType::NoneDataType(); var_dump($a); echo $a->toString() . "\n"; echo $a_>toValue() . "\n";

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.0080.00818.68
8.3.50.0150.00916.63
8.3.40.0180.00419.14
8.3.30.0110.00418.82
8.3.20.0000.00820.30
8.3.10.0040.00421.84
8.3.00.0080.00023.48
8.2.180.0110.00718.41
8.2.170.0040.01122.96
8.2.160.0070.00720.34
8.2.150.0040.00424.18
8.2.140.0000.00824.66
8.2.130.0070.00019.70
8.2.120.0040.00426.35
8.2.110.0030.00721.06
8.2.100.0060.00618.04
8.2.90.0050.00319.08
8.2.80.0080.00017.97
8.2.70.0060.00317.75
8.2.60.0040.00417.80
8.2.50.0000.01018.07
8.2.40.0030.00620.32
8.2.30.0040.00419.53
8.2.20.0000.00717.85
8.2.10.0070.00018.05
8.2.00.0030.00517.96
8.1.280.0170.00025.92
8.1.270.0030.01623.91
8.1.260.0030.01428.09
8.1.250.0070.00028.09
8.1.240.0070.00422.47
8.1.230.0090.00319.16
8.1.220.0080.00017.74
8.1.210.0080.00018.77
8.1.200.0040.00417.36
8.1.190.0030.00516.99
8.1.180.0040.00418.10
8.1.170.0000.00918.59
8.1.160.0040.00420.63
8.1.150.0000.00718.82
8.1.140.0050.00319.64
8.1.130.0040.00417.78
8.1.120.0070.00017.45
8.1.110.0040.00417.46
8.1.100.0000.00817.51
8.1.90.0040.00417.37
8.1.80.0060.00317.44
8.1.70.0050.00317.49
8.1.60.0030.00517.57
8.1.50.0000.00817.52
8.1.40.0000.00817.39
8.1.30.0030.00617.68
8.1.20.0030.00517.63
8.1.10.0060.00317.51
8.1.00.0070.00417.56
8.0.300.0020.00518.77
8.0.290.0040.00416.88
8.0.280.0030.00318.46
8.0.270.0030.00317.14
8.0.260.0040.00417.17
8.0.250.0000.00817.04
8.0.240.0060.00316.98
8.0.230.0030.00316.90
8.0.220.0080.00316.83
8.0.210.0000.00716.85
8.0.200.0000.00617.04
8.0.190.0080.00017.04
8.0.180.0000.01117.01
8.0.170.0030.00517.00
8.0.160.0040.00417.02
8.0.150.0080.00016.86
8.0.140.0040.00416.78
8.0.130.0030.00313.31
8.0.120.0080.00016.95
8.0.110.0050.00216.88
8.0.100.0040.00416.77
8.0.90.0030.00616.92
8.0.80.0100.00617.02
8.0.70.0030.00516.96
8.0.60.0040.00417.01
8.0.50.0040.00416.99
8.0.30.0090.01117.26
8.0.20.0120.00817.40
8.0.10.0000.00817.15
8.0.00.0090.01116.90
7.4.330.0000.00616.77
7.4.320.0030.00316.47
7.4.300.0070.00016.66
7.4.290.0000.00716.60
7.4.280.0050.00516.59
7.4.270.0000.00816.57
7.4.260.0050.00216.54
7.4.250.0040.00416.48
7.4.240.0000.00716.52
7.4.230.0030.00316.52
7.4.220.0110.01016.48
7.4.210.0070.01316.57
7.4.200.0000.00716.49
7.4.160.0110.00516.50
7.4.150.0090.01117.40
7.4.140.0130.00517.86
7.4.130.0100.01616.55
7.4.120.0090.01116.43
7.4.110.0000.01716.61
7.4.100.0140.00316.44
7.4.90.0140.01016.52
7.4.80.0140.00319.39
7.4.70.0070.01016.71
7.4.60.0070.01016.51
7.4.50.0060.00616.54
7.4.40.0000.01816.71
7.4.30.0100.00716.55
7.4.00.0100.00615.03
7.3.330.0060.00013.41
7.3.320.0040.00413.25
7.3.310.0030.00316.38
7.3.300.0070.00016.39
7.3.290.0050.01116.37
7.3.280.0090.00816.35
7.3.270.0070.01617.40
7.3.260.0110.01116.59
7.3.240.0050.01416.59
7.3.230.0100.00716.50
7.3.210.0120.00516.44
7.3.200.0100.01019.39
7.3.190.0150.00916.45
7.3.180.0070.01416.59
7.3.170.0100.01016.43
7.3.160.0060.00916.61
7.3.120.0070.01114.86
7.3.110.0030.01514.80
7.3.100.0070.00715.10
7.3.90.0090.00614.94
7.3.80.0070.00715.02
7.3.70.0090.00614.63
7.3.60.0130.00314.76
7.3.50.0060.01214.66
7.3.40.0040.00814.92
7.3.30.0120.00314.93
7.3.20.0160.00316.93
7.3.10.0070.00716.85
7.3.00.0070.00716.82
7.2.330.0040.01416.71
7.2.320.0140.00316.67
7.2.310.0060.01016.84
7.2.300.0090.00916.89
7.2.290.0120.00616.77
7.2.250.0070.01315.05
7.2.240.0000.02115.41
7.2.230.0060.01215.07
7.2.220.0060.00615.00
7.2.210.0090.00614.80
7.2.200.0100.00615.16
7.2.190.0060.00614.92
7.2.180.0090.00615.24
7.2.170.0100.00614.95
7.2.60.0000.01617.03
7.2.00.0110.00419.32
7.1.330.0000.01415.92
7.1.320.0030.01015.68
7.1.310.0060.00915.74
7.1.300.0040.01115.70
7.1.290.0000.01415.77
7.1.280.0030.01015.97
7.1.270.0070.00715.83
7.1.260.0090.00015.68
7.1.200.0030.00915.88
7.1.100.0080.00317.99
7.1.70.0080.00816.88
7.1.60.0090.01519.18
7.1.50.0160.00616.93
7.1.00.0000.08022.35
7.0.200.0300.00816.62
7.0.100.0030.08019.98
7.0.90.0200.08019.96
7.0.80.0430.07320.02
7.0.70.0170.03719.96
7.0.60.0070.08720.00
7.0.50.0170.07720.24
7.0.40.0070.08020.13
7.0.30.0100.08020.04
7.0.20.0130.07319.96
7.0.10.0070.07320.14
7.0.00.0100.08720.07
5.6.280.0000.04721.15
5.6.250.0130.06720.64
5.6.240.0100.08320.78
5.6.230.0100.07720.79
5.6.220.0100.04020.68
5.6.210.0070.08020.69
5.6.200.0000.08021.22
5.6.190.0030.09021.25
5.6.180.0100.08021.24
5.6.170.0030.09321.09
5.6.160.0070.07721.09
5.6.150.0100.08021.13
5.6.140.0170.06021.07
5.6.130.0130.08721.11
5.6.120.0070.07721.02
5.6.110.0070.06021.11
5.6.100.0130.07021.06
5.6.90.0030.08721.14
5.6.80.0130.04020.47
5.6.70.0070.07320.41
5.6.60.0170.08020.55
5.6.50.0100.06020.46
5.6.40.0070.07720.48
5.6.30.0100.07020.45
5.6.20.0030.07720.50
5.6.10.0070.08720.44
5.6.00.0230.04020.44
5.5.380.0170.07320.49
5.5.370.0170.08020.48
5.5.360.0030.05020.60
5.5.350.0030.04020.44
5.5.340.0100.07720.98
5.5.330.0070.08020.90
5.5.320.0130.07320.97
5.5.310.0100.08020.94
5.5.300.0130.04320.88
5.5.290.0100.04720.97
5.5.280.0130.07320.94
5.5.270.0130.08320.95
5.5.260.0170.07320.89
5.5.250.0030.08320.76
5.5.240.0070.06720.30
5.5.230.0070.07720.09
5.5.220.0230.06020.33
5.5.210.0130.08020.23
5.5.200.0200.07020.31
5.5.190.0000.07320.31
5.5.180.0070.08020.16
5.5.160.0070.08320.31
5.5.150.0100.07720.32
5.5.140.0130.07020.21
5.5.130.0100.06720.22
5.5.120.0170.06720.06
5.5.110.0130.08020.30
5.5.100.0100.08320.14
5.5.90.0170.07320.11
5.5.80.0100.07320.08
5.5.70.0070.08720.10
5.5.60.0130.08020.22
5.5.50.0030.07720.22
5.5.40.0100.06320.18
5.5.30.0130.07720.22
5.5.20.0000.08320.13
5.5.10.0000.05320.13
5.5.00.0100.06720.14

preferences:
36.78 ms | 400 KiB | 5 Q