tag obtener get_the_tags get_the codex actual php function class constructor call

php - obtener - Función de llamada directamente después del constructor: nuevo Object()-> callFunction()



tags wordpress codex (1)

(new Object())->callSomeMethod();

funcionará en PHP 5.4+

EDITAR

Es una nueva característica agregada en PHP 5.4:

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

EDIT2

La función de PHP RFC propone dos conjuntos de sintaxis (con y sin corchetes), ambos se implementan en el RFC, pero solo uno ha sido enviado. No pude encontrar enlaces explicando la decisión.

Echemos un vistazo a los ejemplos de sintaxis sin soporte en el RFC:

  • new foo->bar() debe leerse como (new foo)->bar()
  • new $foo()->bar debe leerse como (new $foo())->bar
  • new $bar->y()->x debe leerse como (new ($bar->y)())->x

Creo que la sintaxis sin corchetes no se envía porque su prioridad de análisis propuesta no es muy intuitiva (difícil de seguir por los ojos) como se muestra en el tercer ejemplo.

Como podría haber visto en el título, mi experiencia en programación es Java. En Java puedes hacer cosas como esta

new Object().callSomeMethod();

sin asignar el Objeto creado a una variable, codificación muy útil y clara si solo necesita este Objeto una vez.

Ahora en PHP intento hacer lo mismo

new Object()->callSomeMethod();

pero aquí aparece un ''Error de análisis: error de sintaxis, inesperado'' -> ''(T_OBJECT_OPERATOR)''.

¿Hay alguna manera de hacer esto en PHP?