为什么我的会话变量没有在这里设置?
问题描述:
我正在设置一个函数内的会话变量studNameDetails1()
而我试图在函数ViewMark()
中检索它。这是我的两个功能,但没有任何结果:为什么我的会话变量没有在这里设置?
function studNameDetails1()
{
$_SESSION['ATTsub']=$sub_id = $ID[5];
}
function ViewMark()
{
echo $_SESSION['ATTsub'];
}
当我呼应viewMark()
价值,没有价值。
答
这是处理会话的方式。
<?php // this starts the session
session_start();
// echo variable from the session, we set this on our other page
echo "Our color value is ".$_SESSION['color'];
echo "Our size value is ".$_SESSION['size'];
echo "Our shape value is ".$_SESSION['shape']; ?>
所有的值都存储在我们在这里访问的$ _SESSION数组中。显示此的另一种方式是简单地运行这段代码:
<?php session_start(); Print_r ($_SESSION); ?>
答
的$ID
变量没有被宣布为studNameDetails1函数内,因此,当您尝试访问它,一个未定义的值。这会将$_SESSION['ATTsub']
和$sub_id
变量设置为未定义,因此当您尝试打印它们时,它们将显示为空。
如果这些变量已被定义的功能范围之外,使用global关键字:
function studNameDetails1()
{
global $sub_id, $ID;
$_SESSION['ATTsub']=$sub_id = $ID[5];
}
+0
+1不要假定函数中有更多的代码,就像我一样。 – 2010-07-03 11:49:32
哪里是'在session_start()'? – 2010-07-03 09:56:27
@Prasoon Saurav:没关系; '$ _SESSION'在运行时表现得像一个普通的变量。 – Gumbo 2010-07-03 09:58:10
这两个函数是否被调用为同一个请求的一部分? – 2010-07-03 09:59:05