在PHP中,将完整对象存储为会话变量是否被认为是最佳实践?在PHP会话中存储对象
从我的经验看,有时候它有效,有时候不行。它有什么具体原因吗?
例子:
session_start();
$object = new sample_object();
$_SESSION['sample'] = $object;
在PHP中,将完整对象存储为会话变量是否被认为是最佳实践?在PHP会话中存储对象
从我的经验看,有时候它有效,有时候不行。它有什么具体原因吗?
例子:
session_start();
$object = new sample_object();
$_SESSION['sample'] = $object;
使用serialize()
在你的PHP对象之前存储和调用unserialize()
当从会议检索您的对象。
存储对象
session_start();
$object = new sample_object();
$_SESSION['sample'] = serialize($object);
检索对象
session_start();
$object = unserialize($_SESSION['sample']);
''sample_object'类必须在'unserialize'之前加载。 – AbraCadaver
是的,''''必须在'unserialize()'''object'之前加载 –
在一般情况下,最好的做法是不要存储在会话对象都:d
我会建议而是只是存储数据。当您必须检查会话的当前状态时,它将具有使调试过程更容易的额外好处。
如果你想真的很花哨,你可以制作一个单独的data mapper,它存储和检索会话中该特定类(或一组类,具有相同接口)实例的数据。
如果对象是可序列化的,它应该没有问题。 –