Pregunta

ni siquiera estoy seguro acerca de cómo titular esta qn. Sin embargo, la esperanza de que hay una manera fácil de hacerlo en un lenguaje dinámico como maravilloso.

decir que tengo un servicio de clase, en la que delegar la lógica de negocio. los métodos en que son funA(), funB()... funX().

Ahora tengo una clase controlador, donde yo llamo el cierre del servicio, que puede ser invocada como service.funA (). Ahora basado en una variable (que puede tener valores A, B ... X), necesito cal el cierre correcto de servicio. Básicamente evitar escribir mucho si las sentencias condicionales. Algo así como service."fun+var"() haría. No estoy seguro de si es posible sustituir la variable en el cierre nombre (función). o cualquier otra forma por la función (nombre) que pasa como un parámetro ... no estoy seguro

Creo que PHP tiene una característica similar http://php.net/ manual de / en / functions.variable-functions.php

gracias por cualquier puntero ..

¿Fue útil?

Solución

Sí, esto es posible. Esto debería hacer lo que quiera:

service."fun${var}"()

El título correcto es método dinámico invocación .

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