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)設計模式 –