destroy(bool $remove_cookie = true, bool $readonly = true)Cytat
Note: Throws
By default, $readonly is enabled and further actions involving writing to the session data store will throw an exception.
to mówi samo przez się... sesje są rożnie rozwiązane i nie zawsze rozpoznasz, że przeglądarka została zamknięta - sesja ginie gdy skończy się czas życia dla niej... fakt faktem z ZF nie korzystam [czasami zaglądam gdyż to fajny zbiór klas], jednak podobnie jak z usuwaniem cookies gdzie nie zawsze wystarczy ustawic czas w przeszłości a wysyła się jeszcze pustą wartość dla danego ciasteczka i nieraz ginie dopiero po wyłączeniu przeglądarki tak jakbyś nie ustawiał czasu dla cookies...
po prostu w wolnym tłumaczeniu tutaj jest niszczone cookies z identyfikatorem sesji i klasa blokowana w bierzącym skrypcie przed zapisem do sesji... przy następnym wywołaniu innego bądź tego samego skryptu nie masz powiązania z tą sesją gdyż nie masz identyfikatora sesji - dla danego uzyszkodnika sesja nie istnieje [choć w bazie zostaje...]
- jak tak bardzo chcesz to zanim ją zablokujesz po prostu nadpisz wszystkie w niej wartości i będziesz miał po problemie...