Aloha ;)
Kann mir jemand helfen?
Üblicherweise ist sowas aber schlechter Stil. Man sieht der Funktion nicht an, dass sie bestimmte Dinge voraussetzt. Eine Übergabe als Parameter zeigt das hingegen deutlich. Ein "global" gleich zu Beginn der Funktion mag einen einfach sichtbaren Hinweis demjenigen geben, der den Quelltext liest. Aber eben nur dem. Weiterhin ist eine Initialisierungsreihenfolge vorgeschrieben, ohne dass sie sich aus dem Code selbst ergibt. Wenn du das DB-Handle als Parameter übergeben müsstest, geht daraus bereits klar hervor, dass dieses zunächst erstellt werden muss.
Schlechter Stil - ja. Grundsätzlich schon. Trotzdem ist es an manchen Stellen imho gerechtfertigt so vorzugehen. Z.B. dann, wenn laut Zielsetzung des Programms nie eine andere als die global definierte Datenbank zum Einsatz kommt. Dann spart ein globales Einbinden Funktionsparameter und Codekomplexität, die Klarheit, dass auf $DB zugegriffen wird, leidet aber nicht.
Trotzdem, ob schlechter Stil hin oder her:
Der Zugriff durch $GLOBALS müsste ja funktionieren (wie du ja erwähnt hast). Der Fehlergrund bleibt also ominös.
Grüße,
RIDER
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[