如何使用通配符取消设置$ _SESSION

时间:2010-12-17 20:32:49

标签: php session

示例我有100个表单字段。每个字段都有错误会话。表单成功提交后,我希望取消设置以$_SESSION['submit_']

开头的任何会话

首先,我可以这样做

unset($_SESSION['submit_first_name'],
$_SESSION['submit_last_name'],
$_SESSION['submit_status'],
$_SESSION['submit_mobile'],
$_SESSION['submit_category']);

但是太长了。

如果我喜欢

session_destroy();

然后会杀死我的登录会话

可以取消设置会话字以 [submit_'] 开头?

让我知道:)。

2 个答案:

答案 0 :(得分:9)

您可以这样做:

foreach($_SESSION as $key=>$value)
  if (strpos($key, 'submit_') === 0)
    unset($_SESSION[$key]);

或者您可以重新排列$ _SESSION变量,如下所示:

$_SESSION['submit']['first_name'];
$_SESSION['submit']['last_name'];
$_SESSION['log']['some_log'];
.
.
.
unset($_SESSION['submit']);

答案 1 :(得分:0)

不确定您是否可以使用通配符,但如果可以帮助您,可以在一个命令中列出它们......就像这样:

unset($_SESSION['submit_last_name'], $_SESSION['submit_status'], $_SESSION['submit_mobile'], etc...);

但是我不确定这是否会让你到处......至少它不是多行的。我将使用通配符进行研究,但你可以谷歌以及我可以:)