【发布时间】:2015-06-08 14:34:35
【问题描述】:
我有一个“页面”类,它的构造包含一个“shoppingCart”类,启动一个会话,创建一个 shoppingCart 对象,然后将 $_SESSION['shoppingCart'] 设置为 shoppingCart 对象。
当我打印会话时,我仍然得到一个不完整的课程......
我认为这只会在您在上课之前开始课程时才会发生?
我的“页面”类中的代码如下所示:
include ('include/shopping_cart.php');
if (session_id() == '')
{
session_start();
}
if (!isset($_SESSION['shoppingCart']))
{
$_SESSION['shoppingCart'] = new shoppingCart;
}
我显然不明白这个......请帮忙!
【问题讨论】:
-
这不是检查会话是否正在运行的正确方法:php.net/session_status。你需要展示对象本身。如果您希望它正确地被塞进 $_SESSION 中,它必须实现可序列化。
-
谢谢 - 我不知道我需要在我的购物车类中实现可序列化!
-
如果您不将其粘贴到 $_SESSION 中,那么就没有必要了。但是会话在关闭时被序列化,在 session_start() 时被反序列化。