Perché alcune persone creano un metodo che restituisce una nuova statica invece di rendere statici tutti i metodi? Qual è la ragione per avere quel metodo che restituisce statico nuovo? Non mi sto chiedendo quale sia la differenza tra statico e autonomo, o cosa sia il significato statico di &. Per esempio, qui è una semplice classe:Perché restituire una nuova statica? (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";
}
}
Come potete vedere, c'è un statica metodo make() che restituiscenuova statica. Quindi, alcune persone chiamano altri metodi come questo:
$regex = Expression::make()->find('www');
Qual è lo scopo? Vedo che non usiamo la nuova sintassi di Expressione, se questo è il punto, perché non hanno reso tutti i metodi, ad esempio, statici? Qual è la differenza, qual è la ragione per avere quel metodo che restituisce new static?
Possibile duplicato di [ciò che significa nuova statica?] (Http://stackoverflow.com/questions/15898843/what-means-new-static) –
La risposta a [Nuovo auto contro nuovo statico] (http://stackoverflow.com/questions/5197300/new-self-vs-new-static?rq=1) spiega chiaramente la differenza. –
@Ankur Tiwari Io sono ** non ** chiedendo qual è la differenza tra _static_ & _self_, o cosa _static_ & _self_ do. – PeraMika