将对象从父级转移到子级

时间:2010-04-24 16:39:54

标签: php oop parent-child

我目前正在使用IP.Board框架开发自定义应用程序,该框架使用PHP,默认情况下为登录用户创建IPSMember对象。但是,我正在开发一个额外的课程,基本上是

class SpecialUser extends IPSMember

有没有办法让父对象IPSMember更改为SpecialUser

1 个答案:

答案 0 :(得分:0)

我不确定,但我不相信有办法在内部更改对象类型。至少,我一直无法让__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

希望有人可以为您提供更快捷的解决方案。 祝你好运。