Como dice el título, quiero crear una instancia de una clase desde un método estático de la misma clase. He descubierto hasta ahora que puedo hacer algo como esto:Crear instancia de clase desde el método estático
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
Que, por tanto, me permite hacer esto.
$obj = Foo::bar("some variable");
¿Qué es genial.
Así que ahora las preguntas. ¿Hay alguna manera más fácil de hacer esto de la que no tengo conocimiento, o cualquier atajo para lograr el mismo resultado? ¿Hay alguna ventaja o desventaja de crear una instancia de esta manera?
Gracias.
¿Cuál es su razón para hacerlo de esta manera? ¿Por qué no usar plain '$ obj = new Foo (" some variable ");'? –
No tiene sentido para mí crear algo con el constructor que ya se haya hecho en algún momento. Por ejemplo, en un proyecto actual, uso Profile :: get() para cargar en un perfil que (en algún momento) ya se ha "construido". Tal vez estoy haciendo un mal uso del constructor o usándolo como una respuesta a la sobrecarga. – daniel