-5

有什么不同?我知道会话变量存储信息并让您跨页面使用它,但我有几个问题:值存储在哪里?会话变量和普通变量有什么区别?

这是在 PHP 的上下文中。我正在寻求深入的答案,因为我没有在网上找到很多关于此的信息。

4

3 回答 3

3

价值存储在哪里?

这取决于 PHP 配置。默认情况下,会话变量被序列化并写入服务器文件系统上的文件中。在启动会话的每个页面视图上,它们都是非序列化的,并且可以从$_SESSION数组中访问。可以覆盖默认会话处理程序,以便您可以将变量存储在其他地方,例如数据库。

会话通过将会话 ID(这是一个唯一标识符)作为 cookie 存储在客户端计算机上来工作。每次客户端请求页面时,会话 ID cookie 都会与请求一起发送,PHP 从 cookie 中获取会话 ID,然后提取与所述会话 ID 相关的会话数据。

会话变量和普通变量有什么区别?

简而言之,会话变量被保存到源(例如文件系统),这就是它们如何在页面请求之间保持不变。普通变量只会在脚本执行完成之前存在,然后将被销毁。

于 2012-12-13T18:12:59.730 回答
0

默认情况下,会话变量存储在服务器上的文件中。处理指向用户的会话通常是浏览器中设置的 cookie(或者可能是查询字符串中的丑陋参数,但不建议这样做)。

文档中有很多关于会话如何工作的信息

于 2012-12-13T18:04:10.770 回答
0

PHP 将会话变量(具有唯一 ID)存储在本质上是服务器站点 cookie 中。然后它会在用户的浏览器中存储一个 cookie,以跟踪会话 ID,以便以后查找。

Cookie 基本上是包含每个变量的编码数据的文本文件。

普通变量只是存储在临时内存中,完成后会被垃圾回收。

编辑:另外,请参阅此答案以获得替代定义:PHP:在 $_SESSION 中存储“对象”

于 2012-12-13T18:05:19.967 回答