访问类中的会话变量 [英] Access Session Variable within a class
问题描述
当需要检索或保留会话值时,在类构造函数上使用 session_start 是否被认为是正常的?最佳做法?
Is it considered normal using session_start on a class constructor when session values need to be retrieved or keep? Best practices?
除非从 __contruct 调用 session_start,否则无法从类中检索会话变量.
Session variable coudn't be retrieved from class unless session_start is called from __contruct.
session_start();
if(isset($_REQUEST['siteid'])){
$siteid = $_REQUEST['siteid'];
$_SESSION['siteid'] = $siteid;
echo $siteid;
}else{
$siteid = "";
}
require_once 'common/lib_constant.php';
require_once 'common/database.php';
require_once 'common/common.class.php';
$commonClass = new commonClass();
推荐答案
最佳实践是从引导程序开始会话.
和会话本身通过某种智能包装类进行访问(有关示例,请参见 ZF).
这样,您应该 100% 确定您的代码中不会出现标题问题和重复 session_start 调用.
一个类可以被实例化多次/请求...bootstrap 只运行一次/请求.
best practice is to start session from the bootstrap.
and session itself accessing through some kind of a smart wrapper class (see ZF for examples).
That way you should be 100% sure you won't have header problems and duplicate session_start calls in your code.
A class can be instantiated many times/request...bootstrap runs only once/request.
这篇关于访问类中的会话变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!