如何使用特定前缀取消设置会话变量

Asn*_*ore 0 php session-variables

可能重复:
如何取消/销毁除某些特定键以外的所有会话数据?

我有一些以"汽车"开头的会话变量,例如

$_SESSION["cars_registration"];
$_SESSION["cars_make"];
$_SESSION["cars_model"];
$_SESSION["cars_variant"];
.
.
.
$_SESSION["cars_date_created"];
Run Code Online (Sandbox Code Playgroud)

我想知道取消/删除/清空那些以汽车作为前缀的会话变量的代码,如上所述.

到目前为止,我已经实现了这一点,但对于解开它们的代码并不知道.

foreach($_SESSION as $key => $value)
{
    if (strpos($key, 'cars_') === 0)
    {
      // Need to delete / unset the session variables  
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮帮我

Dav*_*dom 6

嗯,我很高兴看到仍然能够忽略明显的明显.

有许多方法可以用循环和各种各样的方法来做到这一点,但是正确的方法是使用一个子数组cars,你可以轻松地一次性销毁.

所以不要创造

$_SESSION["cars_registration"];
$_SESSION["cars_make"];
Run Code Online (Sandbox Code Playgroud)

等等,你会创建:

$_SESSION["cars"]["registration"];
$_SESSION["cars"]["make"];
Run Code Online (Sandbox Code Playgroud)

所以,当你来取消它时,你只需要做:

unset($_SESSION["cars"]);
Run Code Online (Sandbox Code Playgroud)

$_SESSION 可以像任何其他数组一样将数据保存在多维结构中 - 它不需要是一个扁平的值集合.

  • +1,我在想这个,为什么不把汽车变成阵列. (2认同)