3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Route { // const RESOURCE_PATTERN = "/"."\[\:(.*)\]"."/"; // const TOKEN_PARA_PATTERN = "/"."\{\:(.*)\}"."/"; private methodList; private url; private urlTokenList; private urlTokenCount; private controller; private action; private tokenParameterList; private resourceList = array(); private resourceDetailList = array(); public function __construct($httpMethod, $httpUrl, $controller, $action) { $this->methodList = explode('|', $httpMethod); $this->httpUrl = $httpUrl; $this->controller = $controller; $this->action => $action; $this->parseURL($httpUrl); } public function parseURL($url) { $tmpUrl = $url; if (substr($requestURI, 0, 1) == '/') { $tmpUrl = substr($tmpUrl, 1); } if (substr($requestURI, -1) == '/') { $tmpUrl = substr($tmpUrl, 0, -1); } $this->urlTokenList = explode('/', $tmpUrl); $this->urlTokenCount = count($this->urlTokenList); foreach($this->urlTokenList as $token) { $isMatchedForResourcePattern = preg_match(self::RESOURCE_PATTERN, $token, $resourceMatches, PREG_OFFSET_CAPTURE); if ($isMatchedForResourcePattern === 1) { array_push($this->resourceList, $resourceMatches[1][0]); } $isMatchedForParaPattern = preg_match(self::TOKEN_PARA_PATTERN, $token, $paramMatches, PREG_OFFSET_CAPTURE); } } public function getMethodList() { return $this->methodList; } public function getUrl() { return $this->url; } public function getUrlTokenList() { return $this->urlTokenList; } public function getUrlTokenCount() { return $this->urlTokenCount; } public function getController() { return $this->controller; } public function getAction() { return $this->action; } public function getTokenParameterList() { return $this->tokenParameterList; } public function getResourceList() { return $this->resourceList; } public function getResourceDetailList() { return $this->resourceDetailList; } public function isMatched($url) { return 0; } } define( 'ROUTES', array( array('httpMethod' => 'GET', 'url' => '[:music_category]/xml', 'controller' => 'CategoryController', 'action' => 'xml'), array('httpMethod' => 'GET', 'url' => '[:music_category]/json', 'controller' => 'CategoryController', 'action' => 'json'), array('httpMethod' => 'GET|POST', 'url' => 'xml', 'controller' => 'temp_controller', 'action' => 'xml'); array('httpMethod' => 'GET|POST', 'url' => 'json', 'controller' => 'temp_controller', 'action' => 'json'); array('httpMethod' => 'GET|POST', 'url' => 'post/[:music_category]/{:data}/xml', 'controller' => 'CategoryController', 'action' => 'post'); ); ); foreach (ROUTES as $route) { $routeObj = new Route($route['httpMethod'], $route['url'], $route['controller'], $route['action']); print_f($routeObj->getMethodList()); print_f($routeObj->getUrl()); print_f($routeObj->getUrlTokenList()); print_f($routeObj->getController()); print_f($routeObj->getAction()); print_f($routeObj->getTokenParameterList()); print_f($routeObj->getResourceList()); print_f($routeObj->getResourceDetailList()); }

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.340.0040.03512.02
5.4.320.0030.03912.51
5.4.310.0030.04012.50
5.4.300.0070.03512.51
5.4.290.0060.03712.50
5.4.280.0030.03812.40
5.4.270.0050.03712.40
5.4.260.0030.04012.40
5.4.250.0070.03712.40
5.4.240.0070.03412.40
5.4.230.0080.03412.39
5.4.220.0060.03512.39
5.4.210.0040.03612.39
5.4.200.0040.03912.39
5.4.190.0050.03612.39
5.4.180.0070.03412.39
5.4.170.0040.03712.40
5.4.160.0060.03512.39
5.4.150.0040.03612.39
5.4.140.0060.03612.08
5.4.130.0030.03712.06
5.4.120.0050.03512.03
5.4.110.0090.03112.02
5.4.100.0040.03612.03
5.4.90.0060.03612.02
5.4.80.0040.03712.02
5.4.70.0060.03312.02
5.4.60.0050.03412.02
5.4.50.0050.03412.02
5.4.40.0070.03312.00
5.4.30.0050.03512.00
5.4.20.0080.03412.00
5.4.10.0100.02912.00
5.4.00.0070.03311.49
5.3.290.0060.03812.80
5.3.280.0050.03812.71
5.3.270.0040.04012.72
5.3.260.0090.03512.72
5.3.250.0080.04312.72
5.3.240.0050.03812.72
5.3.230.0060.03812.71
5.3.220.0060.03812.68
5.3.210.0100.03512.68
5.3.200.0110.03212.68
5.3.190.0050.03812.68
5.3.180.0050.03712.67
5.3.170.0100.03312.66
5.3.160.0110.03812.68
5.3.150.0060.03812.67
5.3.140.0050.03812.66
5.3.130.0060.03912.66
5.3.120.0090.03512.66
5.3.110.0040.03912.66
5.3.100.0070.03512.12
5.3.90.0040.03612.10
5.3.80.0070.03412.09
5.3.70.0080.03412.09
5.3.60.0070.03512.07
5.3.50.0030.03812.02
5.3.40.0090.03212.02
5.3.30.0050.03511.98
5.3.20.0060.03411.75
5.3.10.0060.03411.73
5.3.00.0020.03911.71
5.2.170.0040.0309.21
5.2.160.0060.0279.22
5.2.150.0040.0309.21
5.2.140.0050.0339.21
5.2.130.0020.0319.18
5.2.120.0020.0309.17
5.2.110.0040.0309.18
5.2.100.0050.0289.18
5.2.90.0050.0289.18
5.2.80.0040.0309.17
5.2.70.0060.0289.17
5.2.60.0030.0319.13
5.2.50.0060.0289.10
5.2.40.0050.0289.07
5.2.30.0040.0299.05
5.2.20.0080.0259.04
5.2.10.0020.0308.95
5.2.00.0040.0298.80
5.1.60.0080.0208.09
5.1.50.0060.0228.09
5.1.40.0060.0218.06
5.1.30.0040.0258.42
5.1.20.0050.0258.43
5.1.10.0060.0238.16
5.1.00.0080.0228.16
5.0.50.0040.0196.64
5.0.40.0040.0186.50
5.0.30.0020.0326.31
5.0.20.0040.0206.27
5.0.10.0030.0206.26
5.0.00.0040.0296.25
4.4.90.0020.0164.78
4.4.80.0020.0164.75
4.4.70.0020.0164.76
4.4.60.0020.0154.75
4.4.50.0060.0124.77
4.4.40.0020.0254.71
4.4.30.0050.0134.76
4.4.20.0020.0164.85
4.4.10.0030.0154.85
4.4.00.0020.0254.76
4.3.110.0020.0164.66
4.3.100.0020.0164.66
4.3.90.0040.0134.63
4.3.80.0020.0244.58
4.3.70.0020.0154.63
4.3.60.0010.0164.62
4.3.50.0030.0154.63
4.3.40.0020.0244.54
4.3.30.0000.0173.30
4.3.20.0020.0163.28
4.3.10.0030.0153.24
4.3.00.0100.0177.04

preferences:
146.59 ms | 1394 KiB | 7 Q