在会话中存储对象时我遇到了一些问题。根据我的理解,如果该类是可序列化的并且您在调用之前将其包含在内session_start()
,则 php 会自动序列化/反序列化该对象。
在下一个示例中(使用qcodo 0.4.22 框架)我无法恢复对象的值:
require(dirname(__FILE__) . '/../includes/prepend.inc.php');
QApplication::QcodoInfo();
if (!isset($_SESSION["person"])) {
$person = Person::LoadById(1);
$_SESSION["person"]=$person;
}
else {
echo "Hello ".$_SESSION["person"]->FirstName;
}
所以,为了工作,我不得不这样做:
require(dirname(__FILE__) . '/../includes/prepend.inc.php');
QApplication::QcodoInfo();
if (!isset($_SESSION["person"])) {
$person = Person::LoadById(1);
$_SESSION["person"]=serialize($person);
}
else {
echo "Hello ".unserialize($_SESSION["person"])->FirstName;
}
使用 no-qcodo 类,我不需要使用序列化。是否可以避免序列化?