Moin!
In der Praxis werden meine Variabeln bestimmt in 20 Funktionen gebraucht. Mir wird gesagt, globals sind nicht gut und sinnlos! Stimmt das? Wie kann ich sonst eine Variable (nicht Konstante) definieren, die ich überall benutzen kann?
Nun ja, Konstanten wären eine gute Idee. Die sind überall verfügbar, sobald sie einmal definiert wurden. Und da Konfigurationswerte sich innerhalb eines Skriptes nicht ändern sollten (wenn doch, sind es keine Konfigurationswerte), wäre das eine gute Idee.
Alternativ: Wenn du nicht 20 einzelne Variablen als global in einer Funktion definieren willst, pack sie alle in ein Array und definiere das in jeder Funktion als global. Das ist aber sehr schlechter Stil.
Besser: Pack die Variablen in das Array und übergib es jeweils an die Funktion. Wahlweise auch als Referenz, das ist dann so gut, wie global, nur stressfreier und recht performanceunschädlich, weil nur ein Zeiger übergeben wird, nicht eine komplette Kopie des Arrays. Änderungen daran werden allerdings auch im globalen Array wirksam, also Vorsicht.
Die vierte Alternative: Alle globalen Variablen stehen auch im Array $GLOBALS, welches auch in Funktionen verfügbar ist.
Ich würde mit den Referenzen arbeiten.
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)