Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 24-02-2016, 16:08
berni15
 Registrierter Benutzer
Links : Onlinestatus : berni15 ist offline
Registriert seit: Feb 2016
Beiträge: 9
berni15 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mermshaus Beitrag anzeigen
Hier scheint es der Fall zu sein, dass die Garbage Collection zuerst läuft oder dass zumindest zuerst die Objekte aus dem Speicher freigegeben werden, bevor das Callback ausgeführt wird. (Das liegt nicht speziell an mysqli. Das liegt daran, dass mysqli-Instanzen Objekte sind, während mysql-„Instanzen“ Ressourcen sind.)
Das erklärt's.

Zitat:
Lösungen:

- Beende den Output Buffer manuell am Scriptende via ob_get_clean und Co.
- Sichere die benötigten Variablen in einer Closure. (Das ist dann allerdings der Inhalt der Variablen zu dem Zeitpunkt der Erstellung der Closure.)
Ersteres ist für mich keine sinnvolle Lösung, weil ich OB ja gerade dafür verwende, damit ich nicht am Ende jedes Skripts manuell nochmal eine Funktion aufrufen muss, sondern das einmal zentral verwalten kann. - Gibt's da eigentlich eine Alternativen, also einen Hook, der ausgeführt wird, denn das PHP-Skript ansonsten zu Ende ist? Das wäre dann vielleicht eine bessere Lösung als OB.

Zweiteres tut, aber es fühlt sich für mich irgendwie nicht gut an. Wer weiß, ob da nicht doch irgendwann noch irgendwas anderes von der GC abgeholt wird, bevor es verwendet wird.

Danke dir jedenfalls für die Antwort.

PS: Eigentlich ist der Thread ja nun im falschen Forum gelandet, weil es mit Datenbanken gar nichts zu tun hat. Sollte man ihn verschieben?!?
Mit Zitat antworten