0
我目前正在開發一個使用IP.Board框架的自定義應用程序,該框架採用PHP,默認情況下,該框架爲登錄用戶創建一個IPSMember
對象。但是,我正在開發一個附加的類,基本上將對象從父項轉移到子項
class SpecialUser extends IPSMember
有沒有辦法讓父對象,這是IPSMember
更改爲SpecialUser
?
我目前正在開發一個使用IP.Board框架的自定義應用程序,該框架採用PHP,默認情況下,該框架爲登錄用戶創建一個IPSMember
對象。但是,我正在開發一個附加的類,基本上將對象從父項轉移到子項
class SpecialUser extends IPSMember
有沒有辦法讓父對象,這是IPSMember
更改爲SpecialUser
?
我不確定,但我不相信有一種方法可以在內部更改對象類型。至少,我一直不能有一個__construct()返回一個不同類的對象。
最簡單的方法可能是在SpecialUser中創建靜態初始化方法,該方法接收IPSMember對象並轉換屬性,返回SpecialUser對象。
class SpecialUser extends IPSMember
{
public static function initWithIPSMember (IPSMember $ipsMember)
{
$specialUserObj = new SpecialUser();
// translate any properties
return $specialUserObj;
}
}
Reflection類的getproperties方法可以使您快速做到這一點。 http://php.net/manual/en/reflectionclass.getproperties.php
希望有人能爲您提供更快的解決方案。 祝你好運。