Manuel B.: Instanz einer Klasse global verfügbar machen

Beitrag lesen

Hi,

Angenommen ich ersetzte den Objektnamen $debugger durch $GLOBALS['debugger'] dann funktioniert das alles so - aber gibt es irgendeine Möglichkeit (unter PHP 4) auch $debugger global, also für eingebundene Dateien vergübar zu machen?

Meines wissens nicht, auch nicht unter PHP5.
Was ich in solchen Fällen mache, ist ein

$debugger = $GLOBALS['debugger'];

am Anfang eines jeder Funktion, die diese Klasse verwenden soll.
Wenn du allerdings die Klasse Global definierst (laut deiner Beschreibung definierst du die innerhalb einer Funktion), steht die auch Global zur Verfügung. Logischerweise aber nicht in anderen Funktionen, da musst du die per GLOBALS wieder sichtbar machen.

Ich geh dabei von register_global off aus. Ob es sich mit Klassen und register_globals on anders verhält hab ich nie probiert, da ich grundsätzlich register_globals ausgeschalten hab auf meinem Entwicklungsrechner und auch auf meinen Server im RZ (Auch wenn einige Scriptkiddies unter meinen Kunden meutern wollen)