Sven Rautenberg: Funktionen hijacken und verändern

Beitrag lesen

Moin!

Die Variable stirbt, wenn sie nicht weiter verwendet wird, d.h., wenn es im Laufe des Scripts keine Referenz mehr darauf gibt. Was jedoch weiterlebt bis zum Destructor (Scriptende) ist die Instanz der Klasse (das Objekt).

Das ist nicht korrekt.

Deine Antwort impliziert, es gäbe "den Großen Destruktor", der die Klasseninstanzen ins Jenseits befördert. Stimmt ja nicht, der Destruktor ist eine Funktion, die das Objekt ausführt, bevor es gelöscht wird.

Zweite Implikation: Der Destruktor tritt am Skriptende auf. Stimmt auch nicht, der wird immer dann aufgerufen, wenn ein Objekt gelöscht wird. Am Skriptende natürlich spätestens, aber gern auch früher.

Dritte Implikation deiner Antwort: Objekte leben bis zum Skriptende. Stimmt halt auch nicht, aus oben genannten Gründen.

Jetzt könnten wir eine Variable, die bis zum Schluss gebraucht wird, einfach als Attribut an die Klasseninstanz hängen, was jedoch einen Eingriff in den Code erfordert (und bei einem Update wieder plattgemacht würde). Wäre jedoch ne Überlegung wert.

Wäre einfach und wurde ausgeschlossen.

Vielleicht gibt es aber auch eine Möglichkeit, den gesuchten Wert aus 'anderen' Variablen, die bis jetzt bereits im Objekt enthalten sind (Attribute), zu erzeugen oder zu ermitteln. Dafür würde ich eine Subklasse bauen, womit die Attribute geerbt werden.

Lokale Variablen einer Funktion kann man von außen nicht erreichen, nicht mal mit Reflection.

- Sven Rautenberg