我是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