Callable
Callable
En php todo lo que se puede invocar como funciones se le denomina callable.
Ejemplos de callables
Funciones Regulares
Las funciones normales son callables
function miFuncion($arg) {
echo $arg;
}
// Llamada a la función
$callable = 'miFuncion';
$callable('Hola mundo');
Funciones anónimas
$anonima = function($arg) {
echo $arg;
};
// Llamada a la función anónima
$anonima('Hola mundo');
Métodos de clases
En un array en la que la primera posición es la clase y en la segunda es el nombre del método también se considera callable.
class MiClase {
public function miMetodo($arg) {
echo $arg;
}
}
// Crear una instancia de la clase
$objeto = new MiClase();
// Llamada al método de la clase
$callable = array($objeto, 'miMetodo');
$callable('Hola mundo');
Funciones integradas
$callable = 'strlen';
echo $callable('Hola mundo');
Objeto callable
class MiClase {
public function __invoke($arg) {
echo $arg;
}
}
$objeto = new MiClase();
$objeto('Hola mundo'); // Esto invocará al método __invoke de la clase
Método is_callable
Permite comprobar si una variable es callable desde el scope actual.
1er argumento = la variable que queremos evaluar
2º argumento = Si es true, no comprueba que exista la función, sino simplemente que la variable que se pasa en el primer argumento sea un string o un array. Solo comprueba la sintaxis.
function algunaFuncion()
{
}
$variableFuncion = 'algunaFuncion';
var_dump(is_callable($variableFuncion, false, $nombre_a_llamar)); // bool(true)
echo $nombre_a_llamar, "\n"; // algunaFuncion