El proyecto en el que estoy trabajando contiene algo así como un contenedor para call_user_func (_array) que realiza algunas comprobaciones antes de la ejecución. Una de esas comprobaciones es method_exists (en caso de que el primer argumento proporcionado sea una instancia de una clase y el segundo es un nombre de método) La otra is_callable. La función arrojará una excepción si falla una de esas comprobaciones.PHP __call vs method_exists
Mi código contiene una matriz con nombres de función (setFoo, setBar, etc.) y la función mágica php para sobrecargar (__call) que maneja la configuración, sustitución y eliminación de ciertas variables (mejores ciertos elementos de la matriz).
El problema: method_exists devolverá falso si la función no está definida.
¿Tengo alguna posibilidad de obtener un verdadero si la función __call hace un correcto manejo de la solicitud?
Gran pregunta, voy a jugar un poco con esto. –
Lo que se necesita es otro "método mágico" __canCall o algo así ... –
is_callable() funciona con instancias de clases. No veo por qué estás usando method_exists() en absoluto. is_callable() hace todo lo que method_exists() hace más funciona con __call(). – dave1010