簡體   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