2010-07-03 88 views
0

我正在设置一个函数内的会话变量studNameDetails1() 而我试图在函数ViewMark()中检索它。这是我的两个功能,但没有任何结果:为什么我的会话变量没有在这里设置?

function studNameDetails1() 
{ 
    $_SESSION['ATTsub']=$sub_id = $ID[5]; 
} 
function ViewMark() 
{ 
     echo $_SESSION['ATTsub']; 
} 

当我呼应viewMark()价值,没有价值。

+1

哪里是'在session_start()'? – 2010-07-03 09:56:27

+0

@Prasoon Saurav:没关系; '$ _SESSION'在运行时表现得像一个普通的变量。 – Gumbo 2010-07-03 09:58:10

+0

这两个函数是否被调用为同一个请求的一部分? – 2010-07-03 09:59:05

回答

2

这是处理会话的方式。

<?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); ?> 
3

$ID变量没有被宣布为studNameDetails1函数内,因此,当您尝试访问它,一个未定义的值。这会将$_SESSION['ATTsub']$sub_id变量设置为未定义,因此当您尝试打印它们时,它们将显示为空。

如果这些变量已被定义的功能范围之外,使用global关键字:

function studNameDetails1() 
{ 
    global $sub_id, $ID; 

    $_SESSION['ATTsub']=$sub_id = $ID[5]; 
} 

http://php.net/manual/en/language.variables.scope.php

+0

+1不要假定函数中有更多的代码,就像我一样。 – 2010-07-03 11:49:32

相关问题