$ _SESSION变量的PHP变量

时间:2015-06-01 20:21:44

标签: php session

在我调用session_start()后,无论如何都要为会话变量分配较短的名称,并且这些较短的名称会在页面之间保持不变吗?例如,如果用户成功登录:

session_start();
$_SESSION['email']  = $row->email;
$_SESSION['firstname']  = $row->firstname;
$email = $_SESSION['email'];
$first = $_SESSION['firstname'];

$email$first会在页面之间持续存在吗?

2 个答案:

答案 0 :(得分:0)

这些变量$first$email将不会持续存在。

我认为最好的选择是在脚本末尾添加一段代码,将所有相关信息保存到会话中,或编写自己的包装$ _SESSION的类。

如果您不想显式调用它,例如因为您的页面具有早期退出,则可以注册在脚本末尾调用的函数。此函数可以获取您需要保留的所有内容并将其存储在$ _SESSION中。

使用register_shutdown_function注册此类功能。

答案 1 :(得分:0)

不要使用局部变量,使用会话变量,例如:

$_SESSION["shorty"] = $_SESSION["extremely_long_variable_name"];
unset($_SESSION["extremely_long_variable_name"] );

销毁原始变量,使其不会消耗任何内存。本地变量不会从epage持续到页面。