0
我正在寻找一种方法,您可以在类中调用一个静态方法,该方法将创建它自己的一个实例。我喜欢它,所以它不可能在本身之外实例化类。我试过这个,但是我得到一个错误,说无法实例化抽象类(我认为会发生)。只从本身内部实例化类
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'。 – Marvin
阅读[单身班](http://www.phptherightway.com/pages/Design-Patterns.html)设计模式 –