Php 将会话变量放入变量中,并将其全局使用
我正在一个项目中工作,其中一个将数据保存在会话变量中。这是一个Wordpress项目,我使用“sd\u向导\u glass\u类型”功能将其作为模板显示在我网站的页面上 如您所见:我首先在变量$glasstype中放入了$_SESSION['showerdoor']['glasstype'] 然后,如果设置了$\u GET['glasstype'],我会将它放在$glasstype中。现在我可以在我的函数“sd_向导\u glass_type”(作为会话变量)中随处使用$glasstype 但是现在我想在下面的函数(在下面的wordpress页面中)中使用variabe$glasstype($_SESSION['淋浴门]['glasstype']),但这不起作用。但是如果我在页面上使用$_SESSION['showerdoor']['glasstype'],它确实可以工作 是否可以使用$glasstype作为会话变量Php 将会话变量放入变量中,并将其全局使用,php,session,variables,global-variables,Php,Session,Variables,Global Variables,我正在一个项目中工作,其中一个将数据保存在会话变量中。这是一个Wordpress项目,我使用“sd\u向导\u glass\u类型”功能将其作为模板显示在我网站的页面上 如您所见:我首先在变量$glasstype中放入了$_SESSION['showerdoor']['glasstype'] 然后,如果设置了$\u GET['glasstype'],我会将它放在$glasstype中。现在我可以在我的函数“sd_向导\u glass_type”(作为会话变量)中随处使用$glasstype 但是
// Step: Glass type
function sd_wizard_glass_type() {
$glasstype = $_SESSION['showerdoor']['glasstype'];
if(isset($_GET['glasstype'])) :
$glasstype = $_GET['glasstype'];
endif;
}
最近更新:
function sd_wizard_glass_type() {
if(isset($_GET['glasstype'])) :
$_SESSION['showerdoor']['glasstype'] = $_GET['glasstype'];
endif;
$_SESSION['showerdoor']['glasstype'] = $glasstype;
}
现在我可以在我的函数“sd_向导\u glass_type”(作为会话变量)中随处使用$glasstype
不,这是一个局部变量。当你这样做的时候
$glasstype = $_SESSION['showerdoor']['glasstype'];
将会话变量的值复制到局部变量中
会话变量可以通过将它们放入$\u会话
超全局设置:
$_SESSION['showerdoor']['glasstype'] = $glasstype;
使用指针:
$glasstype = &$_SESSION['showerdoor']['glasstype'];
但如果你尝试:
function toto()
{
$glasstype = &$_SESSION['showerdoor']['glasstype'];
$glasstype = 42;// Work
}
toto();
$glasstype = 42*42; // Fail because $glasstype is a local var
// If you want to do this, replace all $glasstype by $_SESSION['showerdoor']['glasstype'].
有几件事你可以试试。首先,如果需要变量在页面之间持久化,那么将其粘贴到会话中是一个好主意。如果您只需要在单个页面上使用它,那么您可以使用参数和返回值来移动它。比如说
function sd_wizard_glass_type() {
if(isset($_GET['glasstype'])) :
$type = $_GET['glasstype'];
else
$type = $_SESSION['showerdoor']['glasstype'];
return $type;
}
$glasstype = sd_wizard_glasstype();
现在glasstype设置在函数外部
如果需要将glasstype传递回函数
function newfunction($glasstype)
{
//stuff
//return something;
}
然后用同样的方式来称呼它
$foo = newfunction($glasstype);
您还可以使用关键字global
将变量设置为全局变量,但这不会持续到给定页面之外
编辑:这里要知道的主要内容是php中的变量范围。如果在函数内声明变量,则不能在函数外使用它。如果在函数外部声明它,则不能在函数内部使用它,除非使用全局关键字或将其作为参数传递。
$\u会话
已经是全局的。是的,我知道,但由于某些原因,我不能使用$glasstype global,它是会话变量$\u SESSION['sparthdoor']['glasstype']您是否试图在函数范围之外使用$glastype
?是的,我就是这样trying@Robbert然后把它写回会话中,正如我在回答中所示。谢谢你的回答。