¿Es posible crear una instancia y un método de llamada en un comando (en la misma línea) en PHP? [duplicar]

StackOverflow https://stackoverflow.com/questions/1439998

  •  10-07-2019
  •  | 
  •  

Pregunta

  

Posible duplicado:
   En PHP , ¿puede crear una instancia de un objeto y llamar a un método en la misma línea?

¿Es posible?

Normalmente, requiere dos líneas:

$instance = new MyClass();
$variable = $instance->method();

¿Es posible algo así en PHP ?:

$variable = new MyClass()->method();

Por supuesto, el primer código es mejor para la legibilidad y el código limpio, etc., pero tenía curiosidad por saber si puede reducirlo. Tal vez podría ser útil, si el método devolvió otra instancia, por ejemplo:

$instance = new MyClass()->methodThatReturnsInstance();

¿Es posible en PHP?

Otros consejos

Podría crear un método estático que construya una instancia predeterminada y la devuelva.

class Foo
{
     public static function instance() { return new Foo(); }
     ...
}

echo Foo::instance()->someMethod();

Realmente no recomiendo esto, ya que es solo azúcar sintáctico. Solo estás cortando una línea y perdiendo legibilidad.

La función que ha solicitado está disponible en PHP 5.4. Aquí está la lista de nuevas características en PHP 5.4:

http://docs.php.net/manual/en/ migración54.new-features.php

Y la parte relevante de la lista de nuevas características:

  

Se ha agregado el acceso de los miembros de la clase en la instanciación, p. (nuevo Foo) - > bar ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top