Al usar unset() en una variable, lo ha marcado literalmente para 'recolección de basura', ya que PHP realmente no tiene una, entonces la memoria no está disponible de inmediato. La variable ya no alberga los datos, pero la pila permanece en el tamaño actual incluso después de llamar a unset(). Al establecer la variable en NULL, se eliminan los datos y se reduce la memoria de la pila casi de inmediato.
Esto me ha funcionado en varias ocasiones cuando se lanzaron advertencias de memoria agotada antes de la sintonización, y luego se llamó a unset() después de anular la variable. Llamar a unset después de anular podría no ser necesario, pero lo utilicé después de la anulación.
En PHP hay recolector de basura http://stackoverflow.com/questions/1735492/is-there-garbage-collection-in-php – stecb