Dlaczego niektórzy ludzie tworzą jedną metodę, która zwraca nowe statyczne zamiast dokonywania wszystkich metod statycznych? Jaki jest powód, dla którego ta metoda powoduje, że zwraca nowy numer statyczny? Nie pytam, jaka jest różnica między statycznym a własnym, ani tym, co statyczne. Na przykład, tutaj jest jedna prosta klasa:Dlaczego zwracać nowe statyczne? (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";
}
}
Jak widać, istnieje statyczny metoda make() która zwraca nową statyczną. Następnie niektórzy nazywają inne metody takie jak to:
$regex = Expression::make()->find('www');
Jaki jest tego cel? Widzę, że tutaj nie używamy składni new Expression, a jeśli o to chodzi - dlaczego nie stworzyli wszystkich metod, na przykład statycznych? Jaka jest różnica, jaki jest powód posiadania tej metody, która zwraca nowy statyczny?
Możliwy duplikat [co oznacza nowy statyczny?] (Http://stackoverflow.com/questions/15898843/what-means-new-static) –
Odpowiedź na [New siebie vs. nowy statyczny] (http://stackoverflow.com/questions/5197300/new-self-vs-new-static?rq=1) wyjaśnia wyraźnie różnicę. –
@Ankur Tiwari Ja ** nie ** pytam, jaka jest różnica między _static_ i _self_ lub co _static_ i _self_ zrobić. – PeraMika