在我调用session_start()
后,无论如何都要为会话变量分配较短的名称,并且这些较短的名称会在页面之间保持不变吗?例如,如果用户成功登录:
session_start();
$_SESSION['email'] = $row->email;
$_SESSION['firstname'] = $row->firstname;
$email = $_SESSION['email'];
$first = $_SESSION['firstname'];
$email
和$first
会在页面之间持续存在吗?
答案 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持续到页面。