Blog de Gonzalo

FUNCIONES CALLBACK EN PHP

Las funciones callback en php se ejecutan de manera similar a JavaScript. Pero en php las funciones callback también pueden ser métodos de un objeto, incluyendo los métodos de una clase estática. Las funciones callback en php son un método muy utilizado para que las funciones se comuniquen entre sí. Se suelen usar para implementar plugins o módulos de manera limpia y para garantizar su funcionalidad.
Ejemplo:



// Un ejemplo de función de llamada de retorno
function mi_función_de_llamada_de_retorno() {
    echo '¡hola mundo!';
}

call_user_func('mi_función_de_llamada_de_retorno');


// Tipo 2: Llamada a un método de clase estático
class MiClase {
    static function miMétodoDeLlamadaDeRetorno() {
        echo '¡Hola Mundo!';
    }
}

call_user_func(array('MiClase', 'miMétodoDeLlamadaDeRetorno'));


// Tipo 3: Llamada al método de un objeto
$obj = new MiClase();
call_user_func(array($obj, 'miMétodoDeLlamadaDeRetorno'));

// Tipo 4: Llamada a un método de clase estático (A partir de PHP 5.2.3)
call_user_func('MiClase::miMétodoDeLlamadaDeRetorno');

// Tipo 5: Llamada a un método de clase estático relativo (A partir de PHP 5.3.0)
class A {
    public static function quién() {
        echo "A\n";
    }
}

class B extends A {
    public static function quién() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::quién')); // A

// Tipe 6: Los objetos que implementan __invoke se pueden emplear como retrollamadas (desde PHP 5.3)
class C {
    public function __invoke($nombre) {
        echo 'Hola ', $nombre, "\n";
    }
}

$c = new C();
call_user_func($c, 'PHP!');

// Nuestro cierre
$doble = function($a) {
    return $a * 2;
};

// Este es nuestro rango de números
$números = range(1, 5);

// Usar el cierre como llamada de retorno para
// doblar el valor de cada elemento de nuestro
// rango
$números_nuevos = array_map($doble, $números);

print implode(' ', $números_nuevos);

Espero que os haya sido de gran utilidad este post.

Compartir en twitter