Warum sind meine Konstanten nicht außerhalb meiner class verfügbar?

Ich entwickle ein Plugin und versuche, eine class zu verwenden (nach der Methode eines anderen Plugins). Aber ich verstehe nicht, warum meine Konstanten nicht global verfügbar sind. Das ist mein Code:

/* Plugin Name: Some simple plugin */ if (!session_id()) session_start(); class myPluginClass { function __construct() { /* Set the constants needed by the plugin. */ add_action( 'plugins_loaded', array( &$this, 'constants' ), 1 ); } function constants() { $upload_dir = wp_upload_dir(); define( 'SIMPLE_GALLERY_DIR', trailingslashit( str_replace('\\', '/', plugin_dir_path( __FILE__ )) ) ); //This works and outputs http://..... echo SIMPLE_GALLERY_URL; } } $sg = new simpleGallery(); //This does not work and outputs SIMPLE_GALLERY_URL. echo SIMPLE_GALLERY_URL; 

Das Ergebnis der obigen zwei ist: SIMPLE_GALLERY_URLhttp://.....

Das bedeutet, dass mein letztes Echo vor der class ausgeführt wird. Oder ist es?

constants() wird an den plugins_loaded Hook angehängt – könnte es sein, dass dies nach dem Laden der Seite ausgeführt wird?

Solutions Collecting From Web of "Warum sind meine Konstanten nicht außerhalb meiner class verfügbar?"

Ihre Konstante ist in der Aktion “plugins_loaded” definiert, Sie versuchen jedoch, darauf zuzugreifen, bevor diese Aktion ausgeführt wird.