3v4l.org

run code in 300+ PHP versions simultaneously
<?php class DataHolder { private $rawData; private $parsedData; private $mapping = [ 'dbField1' => 'outputField1', 'dbField2' => ['outputField2' => ['parseFn1', 'parseFn2']] ]; private function parseFn1($value) { return $value * 2; } private function parseFn2($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->mapping as $dbFieldName => $content) { if(isset($this->rawData[$dbFieldName])) { if(is_string($content)) { $parsedData[$content] = $this->rawData[$dbFieldName]; } else if (is_array($content)) { $frontFieldName = key($content); $functionsArray = reset($content); $value = $this->rawData[$dbFieldName]; foreach($functionsArray as $functionName) { $value = $this->{$functionName}($value); } $parsedData[$frontFieldName] = $value; } } } } public function getParseData() { return $this->parsedData; } $data = ['dbField1' => 5, 'dbField2' => 13]; $dh = new DataHolder($data); echo $dh->getParseData();

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.0070.03612.53
5.4.310.0060.03912.53
5.4.300.0050.03512.53
5.4.290.0060.03612.52
5.4.280.0050.03612.41
5.4.270.0090.03612.42
5.4.260.0060.03912.41
5.4.250.0060.04512.42
5.4.240.0100.03512.41
5.4.230.0070.03412.41
5.4.220.0080.04112.41
5.4.210.0050.03412.41
5.4.200.0050.03912.41
5.4.190.0040.03812.41
5.4.180.0090.03112.41
5.4.170.0040.03612.41
5.4.160.0040.03612.41
5.4.150.0050.04212.41
5.4.140.0030.03812.10
5.4.130.0100.03812.07
5.4.120.0050.04012.04
5.4.110.0060.04012.04
5.4.100.0050.03412.04
5.4.90.0050.03612.04
5.4.80.0120.03312.04
5.4.70.0080.03612.03
5.4.60.0050.03412.03
5.4.50.0070.03312.04
5.4.40.0060.03312.02
5.4.30.0060.03912.02
5.4.20.0070.03412.01
5.4.10.0050.03712.02
5.4.00.0060.03411.51
5.3.290.0050.03912.80
5.3.280.0070.03512.71
5.3.270.0060.03712.72
5.3.260.0060.03612.72
5.3.250.0040.03812.72
5.3.240.0040.03712.71
5.3.230.0080.03412.71
5.3.220.0050.03612.68
5.3.210.0070.03912.68
5.3.200.0060.03712.68
5.3.190.0070.03512.68
5.3.180.0060.03812.67
5.3.170.0100.03712.67
5.3.160.0070.03412.68
5.3.150.0060.03612.68
5.3.140.0040.03712.66
5.3.130.0070.03712.66
5.3.120.0040.03912.65
5.3.110.0060.03812.66
5.3.100.0080.03312.12
5.3.90.0060.03412.10
5.3.80.0040.03512.09
5.3.70.0040.03612.09
5.3.60.0040.03612.07
5.3.50.0050.03612.02
5.3.40.0020.03912.02
5.3.30.0070.03811.98
5.3.20.0070.04211.76
5.3.10.0080.03011.73
5.3.00.0030.03811.71
5.2.170.0070.0319.21
5.2.160.0050.0299.22
5.2.150.0060.0289.21
5.2.140.0020.0329.21
5.2.130.0050.0279.17
5.2.120.0050.0279.18
5.2.110.0040.0289.18
5.2.100.0040.0359.18
5.2.90.0040.0299.18
5.2.80.0030.0329.17
5.2.70.0030.0319.17
5.2.60.0020.0319.13
5.2.50.0050.0279.10
5.2.40.0040.0289.07
5.2.30.0050.0289.04
5.2.20.0040.0289.04
5.2.10.0070.0258.94
5.2.00.0040.0298.80
5.1.60.0040.0248.09
5.1.50.0040.0248.08
5.1.40.0070.0208.06
5.1.30.0070.0258.41
5.1.20.0020.0328.43
5.1.10.0060.0248.16
5.1.00.0020.0268.16
5.0.50.0020.0216.64
5.0.40.0030.0256.50
5.0.30.0080.0256.31
5.0.20.0040.0186.28
5.0.10.0030.0196.26
5.0.00.0030.0316.25
4.4.90.0020.0164.77
4.4.80.0040.0164.76
4.4.70.0040.0134.75
4.4.60.0020.0154.75
4.4.50.0010.0164.77
4.4.40.0040.0224.71
4.4.30.0030.0144.76
4.4.20.0020.0224.84
4.4.10.0030.0194.85
4.4.00.0020.0244.76
4.3.110.0040.0144.67
4.3.100.0030.0144.66
4.3.90.0030.0134.63
4.3.80.0050.0214.58
4.3.70.0040.0154.63
4.3.60.0020.0144.63
4.3.50.0040.0134.63
4.3.40.0040.0224.54
4.3.30.0020.0163.30
4.3.20.0010.0163.28
4.3.10.0030.0183.23
4.3.00.0030.01316.50

preferences:
140.32 ms | 1394 KiB | 7 Q