Estaba muy emocionado de leer sobre anonymous functions en php, lo que le permite declarar que una variable que es función es más fácil que con create_function. Ahora me pregunto si tengo una función a la que se le pasa una variable, ¿cómo puedo verificarla para determinar si se trata de una función? No hay ninguna función is_function(), sin embargo, y cuando lo haga un var_dump de una variable que es función ::php is_function() para determinar si una variable es una función
$func = function(){
echo 'asdf';
};
var_dump($func);
me sale esto:
object(Closure)#8 (0) { }
Alguna idea sobre cómo comprobar si esto es una función?
is_callable() funcionará bien si está pasando una función anónima, un nombre de función como una cadena o una matriz válida de devolución de llamada de PHP. Si específicamente desea verificar funciones anónimas solamente, entonces desearía algo como lo que dijo Gumbo: asegúrese de que el parámetro sea un objeto y asegúrese de que sea una instancia de Cierre. – Lane
¿Qué pasa si quiero verificar si es un callack o una cuerda y hacer cosas diferentes para ellos? No quiero que un valor de cadena se tome accidentalmente como una devolución de llamada. – Gherman
@German Simplemente marque primero si is_string ($ func) luego como segunda comprobación con is_callable ($ func) – Heroselohim