PHP 面试题 目录

PHP 中如何销毁 session?

推荐答案

在 PHP 中,可以通过以下步骤销毁 session:

  1. 删除 session 数据:使用 session_unset() 函数删除当前 session 中的所有数据。
  2. 销毁 session:使用 session_destroy() 函数销毁整个 session。

示例代码:

-- -------------------- ---- -------
-----
-- -- -------
----------------

-- -- ------- --
----------------

-- -- -------
------------------

---- -------- -----
--

本题详细解读

1. session_unset() 函数

session_unset() 函数用于释放当前 session 中存储的所有变量。它不会删除 session 本身,只是清空了 session 中的数据。调用此函数后,$_SESSION 数组将被清空。

2. session_destroy() 函数

session_destroy() 函数用于销毁当前 session。它会删除 session 文件,并且 session ID 也会被删除。调用此函数后,session 将不再存在,但 $_SESSION 数组中的数据仍然保留在当前脚本的执行环境中,直到脚本结束。

3. 使用场景

  • 用户注销:当用户注销时,通常需要销毁 session 以确保用户无法再访问受保护的资源。
  • 清除 session 数据:在某些情况下,可能需要清除 session 数据而不销毁 session 本身,这时可以使用 session_unset()

4. 注意事项

  • session_start() 的必要性:在调用 session_unset()session_destroy() 之前,必须先调用 session_start(),否则这些函数将无法正常工作。
  • $_SESSION 数组:即使调用了 session_destroy()$_SESSION 数组中的数据在当前脚本中仍然可用,直到脚本结束。如果需要立即清空 $_SESSION 数组,可以手动将其设置为空数组:$_SESSION = array();

5. 示例代码解释

-- -------------------- ---- -------
-----
-- -- -------
----------------

-- -- ------- --
----------------

-- -- -------
------------------

---- -------- -----
--
  • session_start():启动 session。
  • session_unset():清空 session 数据。
  • session_destroy():销毁 session。
  • echo "Session 已销毁";:输出提示信息,表示 session 已被销毁。
纠错
反馈