Bob Ross: Define und globale Arrays

Hi

Für ein projekt brauche ich einige Globale Informationen.
Es wäre jetzt ein leichtes natürlich einige defines zu erstellen die ich dann überall einsetzen kann.
Ich bevorzuge aber Arrays im Programmcode (aus ver. gründen) und würde gerne Wissen ob ich Mehrdimensionale Arrays irgendwie Global setzen kann so dass sie in jeder Funktion und Klasse einem Define ähnlich ansprechbar sind.

Danke im Vorraus.

ciao

  1. schreib doch in function oben rein "global $deinarray;"

    1. Tut mir leid, wie meinst du das jetzt?

      function global $meinarray FunctionName(){

      }

      oder meinst du

      function FunctionName(){
      global $meinArray;

      ]

      Das Problem dass ich dabei sehe wäre allerding dass ich jeder function das anfügen müsste =/
      Kann ich das auch gleich einer ganzen Klasse anfügen so dass ich das "nur" allen Klassen jeweils sagen müsste?

      ciao

  2. Hallo Bob.

    Ich bevorzuge aber Arrays im Programmcode (aus ver. gründen) und würde gerne Wissen ob ich Mehrdimensionale Arrays irgendwie Global setzen kann so dass sie in jeder Funktion und Klasse einem Define ähnlich ansprechbar sind.

    Warum übergibst du die betroffenen Arrays nicht als Argumente an die verschiedenen Funktionen?

    Du kannst mit return und Referenzen auf Variablen (&$varname) arbeiten. Damit wird dein Code um einiges sauberer.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    mathbr:del.icio.us/ mathbr:w00t/
  3. Hello,

    Du kannst sie als Subarray in $GLOBALS einhängen. Dann sollten sie ohne jede weitere Definition überall erreichbar sein.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Klingt gut, wie mache ich das (bzw. wo lese ich dazu im Handbuch)?

      danke

      ciao

      1. Hello,

        Klingt gut, wie mache ich das (bzw. wo lese ich dazu im Handbuch)?

        unter "predefined Variables"

        http://de2.php.net/manual/en/language.variables.predefined.php

        $GLOBALS['meinArray'] = $meinArray;

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  4. Hi Bob Ross,

    Für ein projekt brauche ich einige Globale Informationen.
    Es wäre jetzt ein leichtes natürlich einige defines zu erstellen die ich dann überall einsetzen kann.
    Ich bevorzuge aber Arrays im Programmcode (aus ver. gründen) und würde gerne Wissen ob ich Mehrdimensionale Arrays irgendwie Global setzen kann so dass sie in jeder Funktion und Klasse einem Define ähnlich ansprechbar sind.

    Wenn du einmal dabei bist, objektorientiert zu programmieren, wie wäre es da mit folgender Lösung:

    1. Du erstellst eine Basisklasse für alle deine Scripts:

      
    class bobs_globals {  
      // Konstruktor  
      function bobs_globals() {  
        $this->globals = array(  
          // hier deine globalen Variablen eintragen  
        );  
      }  
    }  
    
    

    2. Du benutzt die wunderbare Eigenschaft der Vererbung:

      
    class irgendeine_andere_klasse extends bobs_globals {  
      // Konstruktor  
      function irgendeine_andere_klasse() {  
        parent::bobs_globals();  
      }  
    }  
    
    

    Jetzt sollten alle Methoden von "irgendeine_andere_klasse" mit $this->globals das Array deiner "globalen Variablen" erreichen.

    Wenn du das nicht magst, dann definiere dein Array einfach im Script vor allen Funktionen und rufe dann innerhalb der Funktionen die Variablen über das Array $GLOBALS auf:

      
    <?php  
    $bobs_globals = array(  
      'bla' => 'irgendwas',  
      'blubb' => 'was anderes'  
    );  
      
    // ...  
      
    function mach_was() {  
      printf("bla hat den Inhalt '%s'\n", $GLOBALS['bobs_globals']['bla']);  
    }  
      
    mach_was();  
    ?>  
    
    

    PHP-Manual zu Geltungsbereichen von Variablen

    happy painting and god bless my friend ;-)
    EisFuX

    --
    ... Suchmaschinen-Blog ...