peter: variablen in functions

moin moin!

ich hab ein kleines problemchen, und zwar habe ich eine datei, die standard mässig includet wird. diese enthält settings variablen, zb das prefix ( $prefix = "yil_"; ) für meine datenbanktabellen.

in einer funktion greif ich auf diese variable mit $GLOBALS["prefix"] zu. fragt mich nich wie ich darauf gekommen bin und wieso :P einfach $prefix funktionierte nicht, und dann hab ich das durch probieren so hinbekommen :)

nun hab ich in meiner settingsdatei variablen dieser form: $_SETTINGS["var1"] = "varwert1";
$_SETTINGS["var2"] = "varwert2";
usw ...

wie kann ich nun in meiner function auf diese zugreifen, ohne sie als parameter übergeben zu müssen? $GLOBALS[$_SETTINGS["var1"]] das funktioneirt mämlich nicht.

hat jemand eine idee?

  1. Hey,

      
    $GLOBALS['settings']['var1']; ?  
    
    

    Tschö

    1. Hello,

      $GLOBALS['settings']['var1']; ?

        
      MMn eher  
        
        $GLOBALS['\_SETTINGS']['var1']; ?  
        
        
      Wenn man sich $GLOBALS anzeigen lässt mit print\_r(), müsste man den passenden Namen angezeigt bekommen.  
        
      Variablen-Bezeichner sind Case sensitive und der Unterstrich gehört zum Bezeichner. Das Dollarzeichen ist für PHP im normalen Kontext das Zeichen, dass es sich um einen Variablenbezug handelt. In den eckigen Klammern des Arrays muss hier aber der Bezeichner des Elements stehen.  
        
        
        
        
        
      Harzliche Grüße vom Berg  
      <http://bergpost.annerschbarrich.de>  
        
      Tom
      
      -- 
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen  
      Nur selber lernen macht schlau  
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)  
        
      ![](http://bitworks.de/~selfHTML/Virencheck.gif)  
      
      
  2. echo $begrüßung;

    in einer funktion greif ich auf diese variable mit $GLOBALS["prefix"] zu. fragt mich nich wie ich darauf gekommen bin und wieso :P einfach $prefix funktionierte nicht

    Das liegt im Geltungsbereich von Variablen begründet.

    wie kann ich nun in meiner function auf diese zugreifen, ohne sie als parameter übergeben zu müssen?

    Das ist ebenfalls auf oben verlinkter Seite beschrieben. Es scheint mir aber, dass du Variablen verwendest für Werte, die im gesamten Scriptverlauf konstant bleiben. Verwende doch dazu Konstanten. Das hat auch den Vorteil, dass sie überall angesprochen werden können, weil sie superglobal sind.

    echo "$verabschiedung $name";