我可以使用通配符取消设置 PHP $_SESSION{} 变量吗?

发布于 2024-11-26 12:17:46 字数 264 浏览 1 评论 0原文

我可以用通配符取消设置吗?

我有一堆 $_SESSION 变量,它们都以相同的前缀开头。我可以使用通配符,而不是显式取消所有设置吗?

(前缀保持不变,但根据某些条件,后缀会有所不同,所以我宁愿不明确这样做)

$_SESSION['abc_1']
$_SESSION['abc_2']
$_SESSION['abc_fish']
$_SESSION['abc_xyz']

$SESSION['abc*']

Can I unset with wildcard?

I have a bunch of $_SESSION variables which all start with the same prefix. Rather than explicitly unset all, can I use a wildcard?

(the prefix remains the same, but depending on some conditions, the suffices vary, so I'd rathe not do it explicitly)

$_SESSION['abc_1']
$_SESSION['abc_2']
$_SESSION['abc_fish']
$_SESSION['abc_xyz']

$SESSION['abc*']

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

给不了的爱 2024-12-03 12:17:46

只需循环数组并取消设置正确的数组即可...

foreach ($_SESSION as $key => $value) {
    if (substr($key, 0, 3) == "abc") {
        unset($_SESSION[$key]);
    }
}

Just loop through the array and unset the right one...

foreach ($_SESSION as $key => $value) {
    if (substr($key, 0, 3) == "abc") {
        unset($_SESSION[$key]);
    }
}
清欢 2024-12-03 12:17:46

你可以尝试正确保存
像这样:

$_SESSION['abc']['1']
$_SESSION['abc']['2']
$_SESSION['abc']['fish']
$_SESSION['abc']['xyz'] 

然后

unset($_SESSION['abc'])

you may try to save correctly
like this:

$_SESSION['abc']['1']
$_SESSION['abc']['2']
$_SESSION['abc']['fish']
$_SESSION['abc']['xyz'] 

and then

unset($_SESSION['abc'])
椒妓 2024-12-03 12:17:46

我认为您不能使用通配符,但最简单的解决方案是您遍历会话数组并使用正则表达式检查键。如果匹配,则取消设置:)

I don't think you can use a wildcard, but the easiest solution would be for you to walk through the Session array and check the keys with a regex expression. If it matches, unset :)

关于从前 2024-12-03 12:17:46

你可以用类似的东西来做到这一点......

    foreach ($_SESSION as $key=>$val) if (strpos($key,'abc_') !== false) unset($_SESSION[$key]);

(我会使用 strpos 而不是 substr 因为它更快一点)

You could do this with something like ...

    foreach ($_SESSION as $key=>$val) if (strpos($key,'abc_') !== false) unset($_SESSION[$key]);

(I'd use strpos over substr because it's a bit faster)

悲歌长辞 2024-12-03 12:17:46
foreach ($_SESSION as $k=>$v) {
    if (substr($k, 0, strlen('abc')) == 'abc')
        unset($_SESSION[$k]);
}
foreach ($_SESSION as $k=>$v) {
    if (substr($k, 0, strlen('abc')) == 'abc')
        unset($_SESSION[$k]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文