【发布时间】:2016-06-11 20:27:04
【问题描述】:
我正在寻找一种可以在类中调用静态方法的方法,该方法将创建自身的实例。我想要它,所以不可能在自身之外实例化类。我已经尝试过了,但我收到一条错误消息,提示 无法实例化抽象类(我认为会发生这种情况)。
abstract class Test {
public function __construct($item){
}
public static function from($item){
return new Test($item);
}
public function testFunc(){
// Do some stuff
return $this;
}
}
它的用法如下所示:
// Valid
Test::from($myItem)->testFunc();
// Invalid
(new Test($myItem))->testFunc();
有没有办法做这样的事情?
【问题讨论】:
-
看来您正在尝试为这个类实现一个单例,是吗?
-
创建构造函数
private,而不是类abstract。 -
阅读singleton class设计模式
-
在这里查看巴巴的回答:stackoverflow.com/questions/12553142/…
-
@Marvin Ahh,看起来它比单例更好......
标签: php