web-dev-qa-db-ja.com

クラス関数内でグローバル変数$ menuにアクセスする方法

私はなぜPHPクラスの関数内でグローバル変数$menuにアクセスできないのか困惑しています

class adminMenus {
   public function getWPdefaultmenus(){
      global $menu;
      return $menu;
   }
}

このコードをプラグインファイルで使用しても、この関数はNULLを返します。

編集済み @ Will後にしていることWeb Mechanicの答え

class adminMenus {
     private $getWPdefaultmenus;
     public function __construct(){
        add_action( 'admin_menu', array( $this, 'getWPdefaultmenus' ) );
      }
      public function getWPdefaultmenus(){
          global $menu;
          $this->getWPdefaultmenus = $menu;
      }
    }

致命的なエラー:空のプロパティにアクセスできません

1
devdarsh

global $menuが設定された後に発生するアクションにフックする必要があります。

例として:

class adminMenus {
   public function getWPdefaultmenus(){
      global $menu;
      return $menu;
   }
 add_action( 'admin_menu', array( $this, 'getWPdefaultmenus' ) );
}