如何在PHP中取消设置会话数组

时间:2014-01-28 23:07:02

标签: php arrays session unset

我使用

创建了一个会话数组
$_SESSION['create'] = array();

然后用这个填充数组,

$_SESSION['create']['new-campaign-name']    = $_POST['new-campaign-name'];
$_SESSION['create']['new-campaign-type']    = $_POST['new-campaign-type'];
$_SESSION['create']['new-campaign-country'] = $_POST['new-campaign-country'];
$_SESSION['create']['new-campaign-list']    = $_POST['new-campaign-contact'];
$_SESSION['create']['new-campaign-des']     = $_POST['new-campaign-des'];

但我想删除会话数组的所有内容。

我试过这个

unset($_SESSION['create']);

但它似乎无法正常工作且所有值仍然在会话数据上,有没有办法重置会话数组的内容?

3 个答案:

答案 0 :(得分:3)

您需要使用以下内置函数来执行此操作

session_unset();

session_unset on PHP.net

答案 1 :(得分:3)

基本上,您希望再次将会话的create部分设置为空。您可以再次使用$_SESSION['create'] = array();执行此操作,就像您初始化它一样。

答案 2 :(得分:2)

以下是我使用现有会话变量运行的一些测试,包括我自己的一些。

查阅整个剧本中的评论。

<?php
session_start();
$_SESSION['create'] = array();

// this one can be used also
// $_SESSION=array();

/*
$_SESSION['create']['new-campaign-name']    = $_POST['new-campaign-name'];
$_SESSION['create']['new-campaign-type']    = $_POST['new-campaign-type'];
$_SESSION['create']['new-campaign-country'] = $_POST['new-campaign-country'];
$_SESSION['create']['new-campaign-list']    = $_POST['new-campaign-contact'];
$_SESSION['create']['new-campaign-des']     = $_POST['new-campaign-des'];

$_SESSION['create_2']['new-campaign-des_2']     = $_POST['new-campaign-des_2'];

*/

// my own test without POST variables
$_SESSION['create']['new-campaign-name']    = 'new-campaign-name';
$_SESSION['create']['new-campaign-type']    = 'new-campaign-type';
$_SESSION['create']['new-campaign-country'] = 'new-campaign-country';
$_SESSION['create']['new-campaign-list']    = 'new-campaign-contact';
$_SESSION['create']['new-campaign-des']     = 'new-campaign-des';

$_SESSION['create_2']['new-campaign-des_2']     = 'new-campaign-des_2';

// echo "Session variables above this";

echo $_SESSION['create']; // this will echo Array

echo "<br>";

// this will unset all in $_SESSION['create'] group
unset($_SESSION['create']);

echo "<br>";

var_dump($_SESSION);

echo "<hr>";

// this will echo NULL
var_dump($_SESSION['create']);

echo "<hr>";

// this will echo Array even after unsetting $_SESSION['create']
echo $_SESSION['create_2'];

echo "<hr>";

// this will echo/dump
// array(1) { ["new-campaign-des_2"]=> string(18) "new-campaign-des_2" } 
var_dump($_SESSION['create_2']);

echo "<hr>";

// this will echo/dump
// array(1) { ["create_2"]=> array(1) { ["new-campaign-des_2"]=> string(18) "new-campaign-des_2" } }
// but not anything in the ['create'] group
var_dump($_SESSION);