Warum einige Leute eine Methode erstellen, die neue statische zurückgibt, anstatt alle Methoden statisch zu machen? Was ist der Grund für diese Methode, die neue statische zurückgibt? Ich frage nicht, was ist der Unterschied zwischen statisch und selbst, oder was statische & selbst bedeuten. Zum Beispiel, hier ist eine einfache Klasse:Warum neue statische zurückgeben? (PHP)
<?php
class Expression
{
public static function make()
{
return new static;
}
public function find($value)
{
return '/' . $value .'/';
}
public function then($value)
{
return $this->find($value);
}
public function hi($value)
{
return "hi";
}
}
Wie Sie sehen können, gibt es eine statische Methode make() die neue statische zurückgibt. Dann rufen einige Leute andere Methoden wie folgt an:
$regex = Expression::make()->find('www');
Was ist der Zweck davon? Ich sehe, dass wir hier nicht neue Ausdruck Syntax verwenden, und wenn das der Punkt ist - warum sie nicht alle Methoden gemacht werden, um zum Beispiel statisch zu sein? Was ist der Unterschied, was ist der Grund, diese Methode zu haben, die neue statische zurückgibt?
Mögliches Duplikat [was neue statisch bedeutet?] (Http://stackoverflow.com/questions/15898843/what-means-new-static) –
Die Antwort auf [Neues Selbst gegen neue statisch] (http://stackoverflow.com/questions/5197300/new-self-vs-new-static?rq=1) erklärt den Unterschied deutlich. –
@Ankur Tiwari Ich bin ** nicht ** fragen, was ist der Unterschied zwischen _static_ & _self_, oder was _static_ & _self_ tun. – PeraMika