dedlfix: Fehler bei m Aufruf der Globalen Varibale

Beitrag lesen

Tach!

Schlechter Stil - ja. Grundsätzlich schon. Trotzdem ist es an manchen Stellen imho gerechtfertigt so vorzugehen.

Lieber fertig werden, als in Schönheit sterben. Solchen Mehraufwand bezahlt ja keiner. Allerdings kommt manchmal das böse Erwachen später, wenn durch die Folgen von verbesserungswürdiger Programmierung noch mehr Aufwand entsteht.

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.

Nun, das global $DB; braucht es in jeder verwendenden Funktion. Wenn man sich nicht $GLOBALS['DB'] antun möchte. Es ist jetzt nicht so übermäßig Mehraufwand, $DB in die Parameterliste zu nehmen und beim Aufruf zu übergeben. So wie es aussieht verwendet der OP ja eine Klasse, also kann man das dem Konstruktor reinreichen und der legt sich das intern ab. Dann braucht es auch keinen Parameter, aber ein $this->db beim Verwenden. Ergebnis: kein spürbarer Mehraufwand, schlechter Stil vermieden und auch die Nebenwirkungen.

Der Zugriff durch $GLOBALS müsste ja funktionieren (wie du ja erwähnt hast). Der Fehlergrund bleibt also ominös.

Vielleicht ist der gezeigte Code ja nicht ganz das, was wirklich vorliegt.

dedlfix.