Сделаем менюшку на PHP7:
Класс menu.php:
Код:
<?php class Menu { private $str_id; private $arr_items; private $int_count; public function __construct($str_id) { $this->str_id = $str_id; $this->arr_items = array(); $this->int_count = 0; } public function add_item($str_text, $str_url) { $this->arr_items[$this->int_count] = array('text' => $str_text, 'url' => $str_url); $this->int_count++; } public function render($arr_params = NULL) { $str_class_nav = ''; $str_class_menu = ''; $str_class_menu_item = ''; $str_class_menu_anchor = ''; if(is_array($arr_params)) { if(isset($arr_params['class_nav'])) $str_class_nav = ' class="' . $arr_params['class_nav'] . '" '; if(isset($arr_params['class_menu'])) $str_class_menu = ' class="' . $arr_params['class_menu'] . '" '; if(isset($arr_params['class_menu_item'])) $str_class_menu_item = ' class="' . $arr_params['class_menu_item'] . '" '; if(isset($arr_params['class_menu_anchor'])) $str_class_menu_anchor = ' class="' . $arr_params['class_menu_anchor'] . '" '; } $str_result = '<nav ' . $str_class_nav . 'id="' . $this->str_id . '"><ul' . $str_class_menu . '>'; foreach($this->arr_items as $arr_item) $str_result .= sprintf('<li' . $str_class_menu_item . '><a '. $str_class_menu_anchor . 'href="%s">%s</a></li>', $arr_item['url'], $arr_item['text']); $str_result .= '</ul>'; return $str_result; } } ?>
Код index.php:
Код:
<?php require_once('menu.php'); $mnu = new Menu('menu'); $mnu->add_item('Стартовая страница', 'index.php'); $mnu->add_item('Продукты', 'product.php'); $mnu->add_item('Контакт', 'contact.php'); $mnu->add_item('О нас', 'about.php'); ?> <!DOCTYPE html> <html> <head> <title>Menu Demo</title> <style> .nav { background-color:blue; } .menu { list-style-type:none; margin:0; padding:0; overflow:hidden; } .menuitem { float:left; } .menuitem a { display:block; color:white; text-align: center; padding:10px 7px; text-decoration:none; border:1px solid blue;} .menuitem a:hover { background-color:white; color:blue; border:1px solid yellow;} </style> </head> <body> <?=$mnu->render(array('class_nav' => 'nav', 'class_menu' => 'menu', 'class_menu_item' => 'menuitem')); ?> </body> </html>
Результат: