繁体   English   中英

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

[英]Make menu and submenu into reusable function

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

在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());

而输出是

数组(0){}

我错过了什么?

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

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

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);

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

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相关联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM