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?