Come dice il titolo, sto cercando di creare un'istanza di una classe all'interno di un metodo statico della stessa classe. Ho capito finora che posso fare qualcosa di simile a questo:Creare un'istanza di classe dal metodo statico
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
Che quindi mi consente di fare questo.
$obj = Foo::bar("some variable");
Che è fantastico.
Quindi ora le domande. C'è un modo più semplice per farlo di cui non sono a conoscenza, o qualche scorciatoia per ottenere lo stesso risultato? Ci sono dei vantaggi o degli svantaggi nel creare un'istanza in questo modo?
Grazie.
Qual è il motivo per farlo in questo modo? Perché non usare plain '$ obj = new Foo (" qualche variabile ");'? –
Non ha senso per me creare qualcosa con il costruttore che è già stato creato ad un certo punto. Ad esempio, in un progetto corrente, utilizzo Profile :: get() per caricare un profilo che (a un certo punto) è già stato "costruito". Forse sto abusando del costruttore o usando questo come una risposta al sovraccarico. – daniel