我是OOP的新手,正在寫我的第一個類。我爲一家保險經紀人工作,並試圖使用一個Class存儲關於報價的事情,並將Object存儲爲會話變量。在會話變量中存儲PHP對象
的是,當我查看會話變量,我得到:
sessionName
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => myClass
[brokerId] =>
誰能告訴我,爲什麼它的顯示不完整的類名?
我是OOP的新手,正在寫我的第一個類。我爲一家保險經紀人工作,並試圖使用一個Class存儲關於報價的事情,並將Object存儲爲會話變量。在會話變量中存儲PHP對象
的是,當我查看會話變量,我得到:
sessionName
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => myClass
[brokerId] =>
誰能告訴我,爲什麼它的顯示不完整的類名?
確保在調用session_start()之前存在類定義,例如,
require_once 'class.MyClass.php';
session_start();
或設置unserialize_callback_func,將試圖作爲http://docs.php.net/function.unserialize描述加載類定義。
編輯:這也可以通過spl_autoload_register()完成。例如。
spl_autoload_register(function($name) {
// only a demo ...this might be insecure ;-)
require_once 'class.'.$name.'.php';
});
session_start();
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
我設法通過自己解決這一切,不知道如何。
我保證顯示的值頁的結構類似:
require_once("Class.php");
session_start();
$_SESSION['myObject']->printVariables();
這構造對象的頁面是這樣的:
# Include the class
require_once($_SERVER['DOCUMENT_ROOT'] . "/Class.php");
# Instantiate a new policy
$_SESSION['myObject'] = new quote('54');
$_SESSION['myObject']->printVariables();
我還相信,該頁面顯示調用對象沒有使用任何序列化函數,因爲它們似乎只會導致錯誤。
我用這
if (!is_object($_SESSION)) $_SESSION = new ArrayObject();
這是正確的,忘了我已經回答:) – soulmerge 2010-01-11 14:41:19