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