PHP使用';tmp&x27;在前面
我只是想遍历所有当前会话变量,如果会话变量名称以“tmp”开头,那么我想取消设置该变量 我会这样做:PHP使用';tmp&x27;在前面,php,loops,foreach,session-variables,Php,Loops,Foreach,Session Variables,我只是想遍历所有当前会话变量,如果会话变量名称以“tmp”开头,那么我想取消设置该变量 我会这样做: foreach($session as $sv){ if(substr($sv,0,3)=='tmp'){ unset($sv); } } 只是不知道如何将所有当前会话变量放入一个数组中 提前谢谢 $\u会话保存每个会话变量 foreach(array_keys($_SESSION) as $sv){ if(substr($sv, 0, 3) === '
foreach($session as $sv){
if(substr($sv,0,3)=='tmp'){
unset($sv);
}
}
只是不知道如何将所有当前会话变量放入一个数组中
提前谢谢
$\u会话
保存每个会话变量
foreach(array_keys($_SESSION) as $sv){
if(substr($sv, 0, 3) === 'tmp'){
unset($_SESSION[$sv]);
}
}
正确
$\u会话
保存每个会话变量
foreach(array_keys($_SESSION) as $sv){
if(substr($sv, 0, 3) === 'tmp'){
unset($_SESSION[$sv]);
}
}
是正确的简单使用简单使用有什么问题吗
foreach (array_keys($_SESSION) as $key) {
if (substr($key,0,3) == 'tmp') {
unset($_SESSION[$key]);
}
}
有什么问题吗
foreach (array_keys($_SESSION) as $key) {
if (substr($key,0,3) == 'tmp') {
unset($_SESSION[$key]);
}
}
?带有合适示例的解决方案
<?php session_start();
$_SESSION['var1']='var 1 value';
$_SESSION['var2']='var 2 value';
$_SESSION['var3']='var 3 value';
$_SESSION['tmpvar1']='tmp var 1 value';
$_SESSION['tmpvar2']='tmp var 2 value';
$_SESSION['tmpvar3']='tmp var 3 value';
print_r($_SESSION);
foreach($_SESSION as $key=>$value)
{
if(substr($key,0,3)=='tmp'){
unset($_SESSION[$key]);
}
}
print_r($_SESSION);
?>
带有适当示例的解决方案
<?php session_start();
$_SESSION['var1']='var 1 value';
$_SESSION['var2']='var 2 value';
$_SESSION['var3']='var 3 value';
$_SESSION['tmpvar1']='tmp var 1 value';
$_SESSION['tmpvar2']='tmp var 2 value';
$_SESSION['tmpvar3']='tmp var 3 value';
print_r($_SESSION);
foreach($_SESSION as $key=>$value)
{
if(substr($key,0,3)=='tmp'){
unset($_SESSION[$key]);
}
}
print_r($_SESSION);
?>
如果您实际上正在尝试使用a)取消设置变量,您将循环使用 如果所说的会话变量是指“当前脚本范围内声明的所有变量”,则您将对全局范围内的所有变量进行循环,或对当前范围内的所有变量(例如,当前函数的范围)进行循环
您必须实际执行循环并取消设置变量的代码是正确的。如果您实际尝试使用a)取消设置变量,您将进行循环 如果所说的会话变量是指“当前脚本范围内声明的所有变量”,则您将对全局范围内的所有变量进行循环,或对当前范围内的所有变量(例如,当前函数的范围)进行循环
您必须实际执行循环并取消设置变量的代码是正确的。会话本身是一个大数组,由数组数组等组成。。。因此,您需要创建一些递归函数来搜索所有级别($_SESSION[“a”]可以是一个数组,其中包含一些临时变量,如$_SESSION[“a”][“tmp_b”]…) 因此: 然后像这样称呼它
resetTemps($_SESSION);
会话本身是一个大数组,数组的数组等等。。。因此,您需要创建一些递归函数来搜索所有级别($_SESSION[“a”]可以是一个数组,其中包含一些临时变量,如$_SESSION[“a”][“tmp_b”]…) 因此: 然后像这样称呼它
resetTemps($_SESSION);
您正在检查会话变量的值是否为
tmp*
,而不是名称。@StefanGehrig:请按F5。我在Mac上-所以我没有F5
;-)您正在检查会话变量的值是否为tmp*
,而不是名称。@StefanGehrig:请按F5。我在Mac上-所以我没有F5
;-)感谢所有的快速回复。我现在觉得自己有点像个白痴,因为我没有意识到$\u会话本身就是一个数组。现在到了,谢谢你的快速回复。我现在觉得自己有点像个白痴,因为我没有意识到$\u会话本身就是一个数组。现在到了。