php - 哪些方法销毁/取消设置 session 变量并且在大多数 PHP 版本中也能有效工作?

标签 php session

<分区>

我正在尝试取消设置销毁一个特定的 session ,我遇到了不同的方法,我想知道哪种方法是完成这项工作和处理大多数 php 版本的有效方法。

第一种方法:

unset($_SESSION['site1']);
session_destroy();

第二种方法:

session_unset();
session_destroy();

更新:[已解决]

<?php
session_start();

unset($_SESSION['site1']);
?>

最佳答案

只需使用unset 即可取消设置任何数组索引。而Session本身就是一个数组。因此,使用 unset 取消设置您的特定 session 索引。对于 session_unsetsession_destroy 函数,您是错误的,因为它们不接受任何参数。

还需要注意的一点是,您不应该使用 session_destroy,因为它会取消设置所有可用的 session 。例如。注销时,您可能不想丢失使用 session 形成的购物车中的产品。

编辑

session_destroy — 销毁注册到 session 的所有数据

session_unset — 释放所有 session 变量

session_unset 只是清除 $_SESSION 变量。这相当于做:

$_SESSION = array(); 所以这只会影响本地 $_SESSION 变量实例,不会影响 session 存储中的 session 数据。

与此相反,session_destroy 销毁存储在 session 存储中的 session 数据(例如文件系统中的 session 文件)。

其他一切都保持不变。

关于php - 哪些方法销毁/取消设置 session 变量并且在大多数 PHP 版本中也能有效工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17217777/

相关文章:

php - SessionHandlerInterface 写方法替代方案

PHP session 管理,使用Cookie统计用户

php - 如果 pdo 数据库连接不存在,错误处理?

php - 随机化具有不合格条件的数字数组

javascript - 如何使用 jquery 更改表格单元格颜色

java - JSESSIONID 根据要求在 chrome 中更改

c# - Application_EndRequest 不会在 404 上触发

php - 代码点火器。如何获取数据库列的总和

PHP,用一个带字母的数组按字母顺序排序

java - 在 session 中存储数据,如何以及何时检测数据是否过时