Да, он уничтожит все данные сеанса, но не сам сеанс.
По сути, в сессии есть три элемента:
- Сам сеанс, инициализированный с
session_start()
- Сеансовый cookie, который устанавливается автоматически
- Данные сеанса, которые устанавливаются с помощью
$_SESSION['foo'] = 'bar'
То есть вы уничтожаете только данные сеанса. session_destroy()
уничтожает как данные, так и сам сеанс, но не удаляет cookie сеанса.
Единственная «реальная» разница между $_SESSION = array()
и session_destroy()
заключается в том, что после session_destroy()
настройка данных сеанса больше не будет работать до инициализации нового сеанса.