is_callable
Determina si un valor puede ser llamado como una función
en el ámbito actual
&reftitle.description;
boolis_callablemixedvalueboolsyntax_only&false;stringcallable_name&null;
Verifica que value es un callable,
o que puede ser llamado utilizando la función
call_user_func.
&reftitle.parameters;
value
El valor a verificar.
syntax_only
Si el argumento syntax_only vale &true;, la
función solo verificará si value puede ser
una función o un método. Rechazará todos los valores
que no sean objetos invocables,
Closure, &string;s, o &array;s que no tengan
una estructura válida para ser utilizados como un callback. Un array invocable válido
contiene 2 entradas: la primera debe ser un objeto
o un string, y la segunda un string.
callable_name
Recibe el "nombre de la función invocable", por ejemplo
"SomeClass::someMethod". Tenga en cuenta, sin embargo, que,
a pesar de la implicación de que SomeClass::someMethod()
es un método estático invocable, no es el caso.
&reftitle.returnvalues;
Retorna &true; si value puede ser llamado como
una función, &false; en caso contrario.
&reftitle.examples;
Verificación si un string puede ser llamado como una función
]]>
&example.outputs;
Verificación si un array puede ser llamado como una función
]]>
&example.outputs;
is_callable y los constructores
A pesar de que los constructores son los métodos que se llaman cuando un objeto es creado,
no son métodos estáticos y
is_callable retornará &false; para ellos. No es
posible utilizar is_callable para verificar si una clase puede
ser instanciada desde el ámbito actual.
]]>
&example.outputs;
&reftitle.notes;
Un objeto es siempre invocable si implementa
__invoke(), y que el método es visible
en el ámbito actual.
Un nombre de clase es invocable si implementa
__callStatic()
Si un objeto implementa __call(), entonces esta función
retornará &true; para cualquier método en ese objeto, incluso si
el método no está definido.
Esta función puede desencadenar el autoload si es llamada con el nombre
de una clase.
&reftitle.seealso;
call_user_funcfunction_existsmethod_exists