哪些方法破坏/取消设置会话变量,并在大多数PHP版本中有效工作?

Si8*_*Si8 4 php session

我试图取消设置销毁一个特定的会话,我遇到了不同的方法,并想知道哪个是有效的方法来完成工作,并处理大多数PHP版本.

第一种方法:

unset($_SESSION['site1']);
session_destroy();
Run Code Online (Sandbox Code Playgroud)

第二种方法:

session_unset();
session_destroy();
Run Code Online (Sandbox Code Playgroud)

更新:[已解决]

<?php
session_start();

unset($_SESSION['site1']);
?>
Run Code Online (Sandbox Code Playgroud)

San*_*jay 6

只是unset用来取消设置任何数组索引.而Session本身就是一个数组.因此,请使用unset取消设置您的特定会话索引.你是错误的session_unset,session_destroy因为他们不接受任何参数.

另外需要注意的是,您不应该使用session_destroy它,因为它将取消设置所有可用的会话.例如.登出时,您可能不希望在使用会话形成的购物车中丢失您的产品.

编辑

session_destroy — Destroys all data registered to a session

session_unset — Frees all session variables

session_unset只是清除$ _SESSION变量.它等同于:

$_SESSION = array(); 因此,这仅影响本地$ _SESSION变量实例,但不影响会话存储中的会话数据.

与此相反,session_destroy会破坏存储在会话存储中的会话数据(例如文件系统中的会话文件).

其他一切都保持不变.