$GLOBALS liefert den Namen eines Defines und nicht den Wert



  • hi,
    ich definiere einen Wert global mit

    define('START_SITE', 'News');
    ...
    $DataTable = START_SITE;
    

    in einer Funktion hole ich die Var mit

    $DataTable = $GLOBALS['DataTable'];
    

    jetzt gibt es nur das Problem das nun $DataTable den Wert 'START_SITE' und nicht den Wert 'News' hat .....

    setze ich aber am Anfang $DataTable nicht auf den Define sondern direkt auf 'News', dann klappts ohne Probleme.

    Kann man das umgehen oder wieso macht der überhaupt solchen Mist???



  • hm, evtl. hängst noch woanders. Folgendes gibt bei mir erwartungsgemäß den String 'News' aus:

    <?
    
    define('START_SITE', 'News');
    
    $DataTable = START_SITE;
    
    function test() {
    	$DataTable = $GLOBALS['DataTable'];
    	echo($DataTable);
    }
    
    test();
    
    ?>
    


  • error_reporting (E_ALL);
    

    Vermutlich wird dann ausgegeben, dass keine Konstante mit dem Namen existiert, wodurch der Konstantenname verwendet wird.



  • manchmal macht man ECHTE sch***e!!! ne ne ne, ich hab die globalen Variablen vor die Includes gezogen, womit natürlich die define noch gar nicht definiert war. ehm, irgendein Mod könnte das hier echt mal löschen!!! Mir ists peinlich :-< 🤡


Anmelden zum Antworten