web-dev-qa-db-de.com

Zugriff auf das globale Variablenmenü $ innerhalb einer Klassenfunktion

ich bin verwirrend, warum ich nicht auf die globale Variable $menu in einer PHP-Klassenfunktion zugreifen kann

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

verwenden Sie diesen Code in einer Plugin-Datei und diese Funktion gibt weiterhin NULL zurück.

Bearbeitet was mache ich nach @Will die Antwort des Web Mechanic

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

dies gibt jedoch den folgenden Fehler zurück: Schwerwiegender Fehler: Auf leere Eigenschaft kann nicht zugegriffen werden

1
devdarsh

Sie müssen sich an einer Aktion beteiligen, die ausgeführt wird, nachdem der global $menu festgelegt wurde.

als Beispiel:

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