为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 中超类中定义的继承工厂方法构建子类?

如何使用 PHP 中超类中定义的继承工厂方法构建子类?

PHP
ibeautiful 2022-07-02 16:55:56
我是 PHP 新手。我有三个类,比如A,B和C, whereB和C继承自A. 我的问题是,我需要一个静态工厂,比如为 classcreateInstance()定义一次A,并且适用于其后代。所以当有人调用时A::createInstance(),它返回一个类型的对象A,而调用B::createInstance()返回一个实例B,并C::createInstance()返回一个实例C。我将以下代码放在createInstance()类的定义中A:public static function createInstance() {     return new self();    }但这不是我需要的解决方案,因为无论调用哪个类,它self总是指类。A换句话说,调用B::createInstance()并C::createInstance总是返回一个类型为 的对象A。如何创建这样一个返回适当类的对象的工厂方法?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

PHP 有一个static可以使用的关键字:


public static function createInstance() {

    return new static();

}


查看完整回答
反对 回复 2022-07-02
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信