3v4l.org

run code in 300+ PHP versions simultaneously
<?php $pages = json_decode('{ "Pages":{ "Home":"Dashboard", "USD Market":{ "Current-Trades":"USD-Current-Trades", "Exchange-Trades":"USD-Exchange-Trades" } } }', true); class Z { private $pages; private $currentPage; public function setConfig($currentPage, array $config) { $this->currentPage = $currentPage; $this->pages = []; $this->addToPageList($config['Pages']); } public function pages($linkName) { return $this->pages[$linkName]; } public function addToPageList(array $pages) { foreach ($pages as $key => $page) { if (is_array($page)) { $this->addToPageList($page); } else { $active = ($page == $this->currentPage) ? 'active' : 'inactive'; $this->pages[$page] = $active; } } } } $z = new Z(); $z->setConfig('USD-Exchange-Trades', $pages); // current page, page config echo $z->pages('USD-Exchange-Trades') . "\n"; echo $z->pages('USD-Current-Trades') . "\n"; echo $z->pages('Dashboard') . "\n";
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
active inactive inactive

preferences:
127.2 ms | 408 KiB | 5 Q