访问类中的会话变量 [英] Access Session Variable within a class

查看:48
本文介绍了访问类中的会话变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当需要检索或保留会话值时,在类构造函数上使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆