PHP verwendet den Garbace Collector. Es gibt alle Variablen frei, für die keine Referenzen mehr vorhanden sind. Unter der Annahme, dass $ obj- & gt; importAFile () keinen Verweis auf $ obj zurückgibt, wird der Speicher freigegeben. Es gibt jedoch keine Garantie, wenn der Speicher freigegeben wird. Wenn $ obj einen Verweis auf sich selbst enthält, wird der Speicher in älteren Versionen von PHP ebenfalls nicht freigegeben. Weitere Informationen finden Sie in der PHP-Dokumentation
Wenn Sie unset () für eine Variable verwenden, haben Sie sie für "garbage collection" markiert, da PHP nicht wirklich über eine solche verfügt, sodass der Speicher nicht sofort verfügbar ist. Die Variable enthält nicht mehr die Daten, aber der Stapel bleibt auch nach dem Aufruf von unset () in der aktuellen Größe. Wenn Sie die Variable auf NULL setzen, werden die Daten gelöscht und der Stapelspeicher fast sofort verkleinert.
Dies hat bei verschiedenen Gelegenheiten für mich funktioniert, wo vor der Optimierung Warnungen mit Speichermangel ausgelöst wurden, und nachdem die Variable ungültig gemacht wurde, unset () aufgerufen wurde. Das Aufrufen von Unset nach dem Annullieren ist möglicherweise nicht notwendig, aber ich habe es trotzdem nach der Annullierung verwendet.