我目前正在使用IP.Board框架开发自定义应用程序,该框架使用PHP,默认情况下为登录用户创建IPSMember
对象。但是,我正在开发一个额外的课程,基本上是
class SpecialUser extends IPSMember
有没有办法让父对象IPSMember
更改为SpecialUser
?
答案 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
希望有人可以为您提供更快捷的解决方案。 祝你好运。