3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface IRouteBuilder { public function __construct($culture, $brand, $country); public function getRoute(sfWebRequest $request); } abstract class AbstractRouteBuilder implements IRouteBuilder { protected $culture; protected $brand; protected $country; public function __construct($culture, $brand, $country) { $this->culture = $culture; $this->brand = $brand; $this->country = $country; echo 'toto'; } abstract public function getRoute(sfWebRequest $request); protected function assertMandatoryParameters(array $parameters, sfWebRequest $request) { foreach ($parameters as $parameter) { if (is_null($request->getGetParameter($parameter))) { throw new Exception(sprintf('Missing parameter "%s"', $parameter)); } } } protected function generateUrl($route, $params) { return sfContext::getInstance()->getRouting()->generate($route, $params, true); } } class FrmTopicRouteBuilder extends AbstractRouteBuilder { implements public function getRoute(sfWebRequest $request) { $this->assertMandatoryParameters(array('id', 'title'), $request); $id = $request->getGetParameter('id'); $title = urldecode($request->getGetParameter('title')); $slug = StringSegment::slugify($title); return $this->generateUrl('frm_topic', array('id' => $id, 'slug' => $slug)); } } new FrmTopicRouteBuilder('fr', 'tha', 'FR');

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.300.0090.03412.54
5.4.290.0030.04112.52
5.4.280.0090.03712.42
5.4.270.0050.03912.42
5.4.260.0090.03412.42
5.4.250.0060.04212.42
5.4.240.0060.03612.42
5.4.230.0080.03512.41
5.4.220.0050.04012.41
5.4.210.0050.03612.41
5.4.200.0060.03712.41
5.4.190.0080.03812.41
5.4.180.0050.03712.41
5.4.170.0050.03712.42
5.4.160.0060.03512.41
5.4.150.0090.03712.41
5.4.140.0080.03612.10
5.4.130.0100.03412.08
5.4.120.0040.03612.05
5.4.110.0060.03512.04
5.4.100.0060.03612.04
5.4.90.0040.04112.04
5.4.80.0040.03912.04
5.4.70.0060.03512.04
5.4.60.0070.03412.04
5.4.50.0060.03512.04
5.4.40.0080.03212.03
5.4.30.0050.03612.02
5.4.20.0040.03912.02
5.4.10.0080.03712.02
5.4.00.0100.03511.52
5.3.280.0020.04612.70
5.3.270.0070.04012.72
5.3.260.0040.04112.72
5.3.250.0080.03512.72
5.3.240.0050.04112.72
5.3.230.0070.04312.71
5.3.220.0070.05012.68
5.3.210.0100.03912.68
5.3.200.0040.03912.68
5.3.190.0060.04112.68
5.3.180.0070.03612.67
5.3.170.0060.03612.67
5.3.160.0070.03512.68
5.3.150.0040.03912.68
5.3.140.0080.03412.66
5.3.130.0070.03712.66
5.3.120.0050.04512.66
5.3.110.0100.04212.66
5.3.100.0050.05012.14
5.3.90.0090.03912.12
5.3.80.0090.04312.11
5.3.70.0050.03912.11
5.3.60.0040.03812.10
5.3.50.0080.03412.04
5.3.40.0060.03712.04
5.3.30.0050.03612.00
5.3.20.0050.03611.78
5.3.10.0050.03511.75
5.3.00.0050.03811.74

preferences:
144.43 ms | 1394 KiB | 7 Q