使菜单和子菜单成为可重复使用的功能

时间:2014-02-21 20:11:01

标签: php

基本上我在这里尝试做的是创建菜单和子菜单,它们可以从脚本中的任何地方挂钩,这意味着我可以从脚本的任何位置添加新菜单。我现在要做的是为它创建一个可重用的函数。

在menu.php

function add_admin_menu($admin_menu_page = array()){
    return $admin_menu_page;
}

function add_admin_submenu($admin_submenu_page = array()){
    return $admin_submenu_page;
}

$admin_menu_page[] = array("Dashboard", "dashboard");
$admin_menu_page[] = array("Pages", "pages");
$admin_menu_page[] = array("Setings", "setings");

$admin_submenu_page['dashboard'][] = array("Home", "home");
$admin_submenu_page['dashboard'][] = array("Update", "update");

$admin_submenu_page['pages'][] = array("Add New Page", "new");
$admin_submenu_page['pages'][] = array("All Pages", 'pages');

$admin_submenu_page['setings'][] = array("SMTP", "smtp");
$admin_submenu_page['setings'][] = array("Theme Options", "theme-options"); 

add_admin_menu($admin_menu_page);
add_admin_submenu($admin_submenu_page);

关于index.php

var_dump(add_admin_menu());

,输出

  

array(0){}

我错过了什么?

在一个简单的问题中,我将如何将其变为功能?

2 个答案:

答案 0 :(得分:1)

如果您尝试检查传递给数组的内容,请尝试这样做。

function add_admin_menu($admin_menu_page = array()){
  var_dump($admin_menu_page);
  return $admin_menu_page;
}

但是没有任何理由让这个函数返回相同的数组。

如果在调用函数后想要var_dump,请尝试此操作。

$menu = add_admin_menu($admin_menu_page);
$submenu = add_admin_submenu($admin_submenu_page);
var_dump($menu);
var_dump($submenu);

答案 1 :(得分:1)

尝试存储您的值,也许是这样:

function add_admin_menu($admin_menu_page = array()){
  static $menu = array();

  if(empty($menu)) $menu = $admin_menu_page;

  return $menu;
}

该解决方案的缺陷是当时只有一个菜单;

这样您可以存储任何数量的菜单;

$menus = array();

function add_admin_menu($admin_menu_page = array()){
  global $menus;

  $index = sizeof($menus);

  $menus[$index] = $admin_menu_page;

  return $index;
}

请注意,它返回$index,而不是输入数组(没有意义),因此您可以稍后访问该菜单,甚至将其与某个sumbenu相关联。