Hello,
Ich wollte sehen, was genau dann passiert, wenn ein absoluter Variablenname (also ein Name innerhalb desselben Scopes) das zweite Mal benutzt wird, um ihn mit einem zval zu verknüpfen.
Anzunehmenderweise wird der refcount im ZVAL-Container eins runtergezählt und die Variable dazu gebracht auf einen anderen ZVAL-Container zu zeigen, dessen refcount hochgezählt wird.
Das geschieht mMn nur dann, wenn die noch vorhandene Variable überschrieben wird.
Eine Variable ist nach meinem Verständnis ein Eintrag in einer der Variablenlisten mit einem Verweis auf einen ZVAL-Container.
Beides: genau! Aber ich möchte gerne die ungenaue Vorstellung gegen genaues Wissen tauschen.
Und da ist es dann entscheidend: Was geschieht genau, wenn der RefCount 0 wird? Wird dann SOFORT der Destruktor des Objektes aufgerufen, oder wird dies erst irgendwann beim Aufräumen gemacht?
Der Aufruf des Destruktors müsste stattfinden, _direkt_ _nachdem_ das neue Paar "Name -> zval-Container" erzeugt worden ist.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg