我是 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();
}
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消