我在會話中存儲對象時有點問題。根據我的理解,如果這個類是可序列化的,並且在調用session_start()
之前包含它,php會自動序列化/反序列化對象。試圖避免序列化在PHP與qcodo
在接下來的例子(使用qcodo 0.4.22 framework)我不能恢復對象的值:
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;
}
由於沒有-qcodo類我不需要使用序列化。 是否可以避免序列化?
哪一類是'Person'? – hakre
這是從Qcodo網站的示例數據庫中提取的「表類」。我只想說明在沒有序列化的情況下在會話中存儲對象的不可能性 – yauros
該表類是否具有特定的具體名稱?也許可以在http://api.qcodo.com/上看到的東西?我只是想了解具體情況。在將它存儲到會話中時,處理具體實例時遇到問題已經很清楚了。 – hakre