hi,
egal in welcher programmiersprache - mit globalen variablen zu arbeiten, gilt in den allermeisten fällen als ziemlich unfein.
Hm, warum dieses? Ich brauche doch die Variablen im gesamten Script.
du hast sie ja auch "im gesamten script", "von oben bis unten" sozusagen, zur verfügung. da musst du sie ja nicht irgendwie "global" machen.
allerdings ist eine _funktion_ gar nicht teil deines scriptes, sondern ja etwas bewusst ausgelagertes (ob jetzt wirklich extern in einem include-file oder im selben script, ist wurscht).
also existiert von deinem script in richtung funktion und zurück von der funktion an dein script jeweils eine schnittstelle, die dann auch konkret definiert sein sollte, und an der man sich nicht irgendwie "vorbeischummelt".
die größte gefahr bei der verwendung globaler variablen ist einfach, dass man ihren wert innerhlab einer funktion evtl. mal "versehentlich" ändert, und dann nachher das script unerwartete reaktionen zeigt.
durch eine saubere schnittstelle verhindert man das, da kannst du beim debuggen vorher und nachher ganz genau prüfen, was geht rein, was kommt raus.
stell' es dir einfach mal wie zwei benachbarte zimmer in einem haus vor - um sachen von einem zimmer ins andere zu bekommen, musst du sie alle durch die tür tragen.
jetzt mag natürlich jemand sagen, "das ist mir zu umständlich, lieber lasse ich die wand zwischen beiden zimmern komplett weg, dann brauche ich einfach nur den teppich auf der kompletten breite vom einen zimmer ins andere rüberziehen, und alle sachen sind da - ohne das ich mit ihnen durch die dumme tür muss".
der wird dann aber ziemlich bald feststellen, dass es ohne wand doch irgendwie zieht, und ungemütlich ist.
(es muss hinken, sonst wär's ja kein vergleich ...)
ausserdem machst du dir duch eine funktion, die die global verfügbaren variablen $a und $b benutzt, um daraus einen wert für $c zu berechnen, ja den größten vorteil von funktionen kaputt - wie willst du diese funktion verwenden, um aus $x und $y nach dem gleichen algorithmus $z zu berechnen, wenn deine funktion doch immer mit den selben globalen variablen arbeitet ...?
gruß,
wahsaga
[ Hier könnte Ihre Werbung stehen! ]