2009-10-28 139 views
0

序列化varibale似乎并未从扩展的类中保留其状态。PHP类和继承,序列化

我有一个类,直接从某处称为一个接受序列化变量:

class Main extends Admin { 
function __construct($serialized){ 
    parent::__construct($serialized); 
} 

.... (omitted) 
} 

class Admin extends Page{ 
    var $pageargs; 

function __construct($should_still_be_serialized_form){ 
    $this->pageargs = unserialize($should_still_be_serialized_form); }} 

在管理类我得到错误:反序列化()预计参数1是串,阵列中的(管理类文件中给定)...

这是处理继承的方式吗?或者我的代码有问题?

+0

你怎么称呼'新主'? – 2009-10-28 10:39:13

+0

我通过以下方式称为新主体: $ args ['foo'] ='bar'; $ args ['bar'] ='foo'; $ classpage ='Main'; eval(“\ $ page = \ $ classpage('”。serialize($ args)。“')”); – jan 2009-10-29 05:23:49

回答

0

似乎$ should_still_be_serialized_form是数组而不是序列化的字符串。检查出你传递了正确的参数 - print_r($ should_still_be_serialized_form)。

+0

对主类的调用是这样的:(PHP) $ vartoserialize ['foo'] ='bar'; $ vartoserialize ['bar'] ='foo'; eval(“\ $ page = new \ $ classpage('”。serialize($ vartoserialize)。“')”); 和事件发生如上所述我的职位。 – jan 2009-10-28 14:15:11

+0

print_r表明它确实是一个当我最初创建代码时传递的数组,我忘了它,它不应该在那里。 – jan 2009-10-29 06:27:47