2009-10-28 93 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