我可以使用通配符取消设置吗?
我有一堆$ _SESSION变量,都以相同的前缀开头。我可以使用通配符而不是明确取消所有操作吗?
(前缀保持不变,但根据某些条件,这些内容会有所不同,所以我不会明确地说明这一点)
$ _ SESSION [ 'abc_1']
$ _SESSION [ 'abc_2']
$ _SESSION [ 'abc_fish']
$ _SESSION ['abc_xyz']
$ SESSION [ 'ABC *']
答案 0 :(得分:5)
只需循环遍历数组并取消设置正确的数组......
foreach ($_SESSION as $key => $value) {
if (substr($key, 0, 3) == "abc") {
unset($_SESSION[$key]);
}
}
答案 1 :(得分:3)
您可以尝试正确保存 像这样:
$_SESSION['abc']['1']
$_SESSION['abc']['2']
$_SESSION['abc']['fish']
$_SESSION['abc']['xyz']
然后
unset($_SESSION['abc'])
答案 2 :(得分:2)
我认为您不能使用通配符,但最简单的解决方案是让您遍历Session数组并使用正则表达式检查键。如果匹配,则取消设置:)
答案 3 :(得分:1)
你可以用......之类的东西来做这件事。
foreach ($_SESSION as $key=>$val) if (strpos($key,'abc_') !== false) unset($_SESSION[$key]);
(我使用strpos over substr因为它更快一点)
答案 4 :(得分:1)
foreach ($_SESSION as $k=>$v) {
if (substr($k, 0, strlen('abc')) == 'abc')
unset($_SESSION[$k]);
}