3v4l.org

run code in 300+ PHP versions simultaneously
<?php class DataHolder { private $rawData; private $parsedData; private $mapper = [ 'dbField1' => 'outputField1', 'dbField2' => ['outputField2' => ['parseFn1', 'parseFn2']] ]; private function parserFn1($value) { return $value * 2; } private function parserFn2($value) { return $value . "$"; } public function __construct(array $data) { $this->rawData = $data; $this->mapData(); } // Yes, I know the methods shouldn't be here but it rather be decoupled in another class and // injected with a DI it but I wrote it like this with example purposes only private function mapData() { foreach($this->rawData as $dataItem) { foreach($this->mapping as $dbFieldName => $content) { if(isset($dataItem[$dbFieldName]) { var_dump($dataItem[$dbFieldName]); } } } } } $data = ['dbField1' => 5, 'dbField2' => 13]; $dh = new DataHolder($data);

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.320.0060.03812.52
5.4.310.0040.04112.52
5.4.300.0070.03612.52
5.4.290.0060.03812.52
5.4.280.0080.03412.41
5.4.270.0060.03712.42
5.4.260.0040.04012.42
5.4.250.0080.03812.41
5.4.240.0080.03912.42
5.4.230.0050.03912.41
5.4.220.0060.03712.41
5.4.210.0050.03612.41
5.4.200.0050.03812.41
5.4.190.0040.03912.41
5.4.180.0090.03312.41
5.4.170.0040.03712.41
5.4.160.0050.03612.41
5.4.150.0050.03912.41
5.4.140.0050.04312.09
5.4.130.0090.04712.08
5.4.120.0040.03712.04
5.4.110.0060.03412.04
5.4.100.0080.03612.04
5.4.90.0080.04112.04
5.4.80.0050.03912.04
5.4.70.0070.04412.03
5.4.60.0060.03512.03
5.4.50.0080.03412.03
5.4.40.0060.03412.02
5.4.30.0030.03712.02
5.4.20.0090.03612.02
5.4.10.0050.03612.02
5.4.00.0050.03711.51
5.3.290.0100.05312.80
5.3.280.0060.05412.71
5.3.270.0060.05512.72
5.3.260.0130.05212.72
5.3.250.0110.04912.72
5.3.240.0100.05212.72
5.3.230.0060.05012.71
5.3.220.0050.04112.68
5.3.210.0100.03612.68
5.3.200.0060.03812.68
5.3.190.0090.04112.68
5.3.180.0050.03912.67
5.3.170.0100.04012.67
5.3.160.0150.04212.67
5.3.150.0110.04312.67
5.3.140.0050.04012.66
5.3.130.0100.03512.66
5.3.120.0040.04312.65
5.3.110.0080.04112.66
5.3.100.0050.03912.12
5.3.90.0060.04112.10
5.3.80.0070.03612.09
5.3.70.0070.03712.09
5.3.60.0060.03912.07
5.3.50.0070.04012.02
5.3.40.0070.03612.02
5.3.30.0080.03611.98
5.3.20.0110.03711.76
5.3.10.0060.03611.73
5.3.00.0070.03611.71
5.2.170.0070.0299.21
5.2.160.0040.0349.22
5.2.150.0040.0349.22
5.2.140.0080.0409.21
5.2.130.0090.0309.17
5.2.120.0060.0289.18
5.2.110.0030.0319.18
5.2.100.0070.0329.17
5.2.90.0080.0359.17
5.2.80.0080.0419.17
5.2.70.0040.0409.17
5.2.60.0030.0339.13
5.2.50.0030.0329.10
5.2.40.0040.0309.07
5.2.30.0030.0329.05
5.2.20.0110.0269.04
5.2.10.0070.0268.94
5.2.00.0050.0288.80
5.1.60.0080.0248.08
5.1.50.0080.0218.08
5.1.40.0040.0258.06
5.1.30.0070.0238.41
5.1.20.0030.0288.44
5.1.10.0060.0248.16
5.1.00.0050.0248.16
5.0.50.0020.0226.64
5.0.40.0050.0186.50
5.0.30.0030.0326.31
5.0.20.0030.0206.28
5.0.10.0020.0216.26
5.0.00.0030.0316.25
4.4.90.0050.0134.78
4.4.80.0010.0174.75
4.4.70.0030.0154.75
4.4.60.0020.0174.75
4.4.50.0030.0174.77
4.4.40.0020.0274.71
4.4.30.0020.0164.76
4.4.20.0030.0164.85
4.4.10.0030.0154.85
4.4.00.0050.0234.76
4.3.110.0010.0174.66
4.3.100.0050.0134.67
4.3.90.0020.0164.63
4.3.80.0040.0234.59
4.3.70.0040.0134.63
4.3.60.0030.0144.63
4.3.50.0040.0154.63
4.3.40.0040.0234.54
4.3.30.0020.0163.30
4.3.20.0020.0163.28
4.3.10.0020.0163.23
4.3.00.0070.01716.50

preferences:
137.62 ms | 1394 KiB | 7 Q