PHP - 使用foreach

时间:2017-04-16 12:14:21

标签: php arrays session foreach unset

是否可以使用$_SESSION周期取消设置foreach个变量?这是一个例子。

<?php
session_start();
$_SESSION['one'] = 'one';
$_SESSION['two'] = 'two';
$_SESSION['three'] = 'three';
print_r($_SESSION);
foreach($_SESSION as $value) {
    unset($value);
}
session_destroy();
print_r($_SESSION);
?>

我认为这个脚本应该可以工作,但它对我不起作用。它给了我这个输出,而没有取消设置变量:

  

数组([one] =&gt; one [two] =&gt; two [three] =&gt; three)
数组([one] =&gt;   一[2] =&gt;两个[三] =&gt;三)

也许这是与超全球数组相关的问题。无论如何,我可以使用他们的密钥取消设置变量:

unset($_SESSION['one']);

3 个答案:

答案 0 :(得分:1)

您必须获取密钥并unset $_SESSION[$key]或通过引用传递您的变量(不确定您是否可以unset参考)。

foreach($_SESSION as $key => $value) {
    unset($_SESSION[$key]);
}

foreach($_SESSION as &$value) {
    unset($value);
}

答案 1 :(得分:1)

取消设置,

unset($_SESSION);

答案 2 :(得分:0)

通过引用传递变量:

foreach($_SESSION as &$value) {
    // edit $value
}