3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * presentation models */ class MenuItem { private $link; private $text; private $active; public function getLink) { return $this->link; } public function getText() { return $this->text; } public function isActive() { return $this->active; } public function setLink($link) { $this->link = $link; } public function setText($text) { $this->text = $text; } public function setIsActive($active) { $this->active = $active; } } class Menu implements Iterator { private $ptr; private $menuItems = []; public function add(MenuItem $tem) { $this->menuItems[] = $item; } function rewind() { $this->ptr = 0; } function current() { return $this->menuItems[$this->ptr]; } function key() { return $this->ptr; } function next() { $this->ptr++ } function valid() { return isset($this->menuItems[$this->ptr]); } public function __construct() { $this->ptr = 0; } } /** * set up presentation models */ $menu = new Menu(); $menuItem1 = new MenuItem(); $menuItem1->setText('Home'); $menuItem1->setLink('#'); $menuItem1->setIsActive(true); $menuItem2 = new MenuItem(); $menuItem2->setText('Other'); $menuItem2->setLink('#'); $menuItem2->setIsActive(false); //... $menu->add($menuItem1); $menu->add($menuItem2); /** * Render in view */ ?> <ul> <?php foreach ($menu as $menuItem): ?> <li class="<?= $menuItem->isActive() ? 'active' :'passive' ?>"><a href="<?= $menuItem->getLink() ?>"><?= $menuItem->getText() ?></a></li> <?php endforeach; ?> </ul>

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.270.0060.03812.38
5.4.260.0090.04512.38
5.4.250.0060.04512.38
5.4.240.0070.04312.38
5.4.230.0050.03812.38
5.4.220.0070.03512.38
5.4.210.0060.03712.37
5.4.200.0090.03612.37
5.4.190.0050.03912.37
5.4.180.0070.03712.37
5.4.170.0070.03812.38
5.4.160.0040.03812.37
5.4.150.0060.03712.37
5.4.140.0040.04112.06
5.4.130.0050.03712.04
5.4.120.0050.03812.00
5.4.110.0090.03912.00
5.4.100.0050.03812.00
5.4.90.0050.04212.00
5.4.80.0040.04312.00
5.4.70.0090.04311.99
5.4.60.0060.03612.00
5.4.50.0070.03811.99
5.4.40.0080.03911.98
5.4.30.0050.04111.98
5.4.20.0080.03411.98
5.4.10.0050.03711.98
5.4.00.0070.04111.47
5.3.280.0070.04412.71
5.3.270.0070.04612.72
5.3.260.0080.04012.72
5.3.250.0070.04712.72
5.3.240.0050.04812.72
5.3.230.0100.04212.71
5.3.220.0040.04012.68
5.3.210.0070.03812.68
5.3.200.0060.04312.68
5.3.190.0080.03812.68
5.3.180.0080.03512.67
5.3.170.0060.03812.67
5.3.160.0050.04212.67
5.3.150.0080.04012.67
5.3.140.0080.04212.66
5.3.130.0060.04312.66
5.3.120.0090.04212.66
5.3.110.0060.04112.66
5.3.100.0050.03812.12
5.3.90.0070.03612.09
5.3.80.0080.04112.07
5.3.70.0070.05212.07
5.3.60.0100.04712.06
5.3.50.0070.03712.00
5.3.40.0040.04212.00
5.3.30.0050.03611.95
5.3.20.0040.03611.73
5.3.10.0050.03511.69
5.3.00.0060.03611.67

preferences:
138.95 ms | 1394 KiB | 7 Q