LonghornPHP 2026

session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unsetОсвобождает переменные сессии

Описание

function session_unset(): bool

Функция session_unset() удаляет переменные текущей сессии, которые зарегистрировали прежде.

Список параметров

Сигнатура функции не содержит параметров.

Возвращаемые значения

Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка.

Список изменений

Версия Описание
7.2.0 Теперь функция возвращает тип bool . Раньше функция возвращала тип void .

Примечания

Замечание:

Переменные сессии в суперглобальном массиве $_SESSION удаляют конструкцией unset() : unset($_SESSION['varname']);.

Предостережение

Сам массив $_SESSION удалять вызовом unset($_SESSION) НЕ нужно, поскольку это не даст зарегистрировать новые переменные сессии через суперглобальный массив $_SESSION .

Замечание:

Вызов функции session_unset() идентичен выражению $_SESSION = [].

Предостережение

Функция работает только при активной сессии. Функция не очистит массив $_SESSION , если сессию ещё не запустили или уже уничтожили. Выражение $_SESSION = [] удалит все переменные сессии, даже если сессия неактивна.

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 3 notes

up
42
tim at leethost dot com
14 years ago
I was having a problem clearing all session variables, deleting the session, and creating a new session without leaving old session stuff behind in all browsers. The below code is perfect for a logout script to totally delete everything and start new. It even works in Chrome which seems to not work as other browsers when trying do logout and start a new session.
<?php
 session_start();
 session_unset();
 session_destroy();
 session_write_close();
 setcookie(session_name(),'',0,'/');
 session_regenerate_id(true);
?>
up
27
jerry
10 years ago
The difference between both session_unset and session_destroy is as follows:
session_unset just clears out the session for usage. The session is still on the users computer. Note that by using session_unset, the variable still exists. session_unset just remove all session variables. it does not destroy the session....so the session would still be active.
Using session_unset in tandem with session_destroy however, is a much more effective means of actually clearing out data. As stated in the example above, this works very well, cross browser. session_destroy is destroy the session. session_destroy() to kill all session information.....This is the more secure function to use.
up
0
christian+php at
2 years ago
The solution provided by tim at leethost dot com is nice but you must check a active session first, because else you fill the logs with PHP Errors or Notices depending on your settings. I use it as a function, and it works smooth. 
```php
 /** @return void */
 public static function sayonara():void
 {
 if (session_status() !== PHP_SESSION_ACTIVE) :void
 {
 session_start();
 session_unset();
 session_destroy();
 session_write_close();
 setcookie(session_name(), '', 0, '/');
 session_regenerate_id(true);
 } 
 }
 sayonara();
```
+Добавить

AltStyle によって変換されたページ (->オリジナル) /