Una funcion de devolucion de llamada, es una funcion que se pasa con un argumento en otra
conocidas como funciones "callback"
Cualquier función existente se puede utilizar como función de devolución de llamada.
Para utilizar una funcion como devolucion de llamada, hay que pasar un string (cadena) que contenga el nombre de la funcion como argumento de otra funcion
Ejemplo
Pasamos la funcion array_map() para calcular la longitud de un string en un array
<?php function my_callback($item) { return strlen($item); } $strings = ["manzana", "naranja", "banana", "coco"]; $lengths = array_map("my_callback", $strings); print_r($lengths); ?>
...
A partir de la versión 7, PHP puede pasar funciones anónimas como funciones de devolución de llamada:
ejemplo
Vamos usar una function anonima como devolucion de llamada para la funcion array_map()
<?php $strings = ["manzana", "naranja", "banana", "coco"]; $lengths = array_map( function($item) { return strlen($item); } , $strings); print_r($lengths); ?>
Devoluciones de llamada en funciones definidas por el usuario
Las funciones y métodos definidos por el usuario también pueden tomar funciones de devolución de llamada como argumentos
Para usar funciones de devolución de llamada dentro de una función o método definido por el usuario, llamarlo agregando paréntesis a la variable y pasar argumentos como con normal funciones:
Ejemplo
Vamos a defenir una devolucion de llamada defenida por el usuario
<?php function exclaim($str) { return $str . "! "; } function ask($str) { return $str . "? "; } function printFormatted($str, $format) { // Calling the $format callback function echo $format($str); } // Pass "exclaim" and "ask" as callback functions to printFormatted() printFormatted("Hola Mundo", "exclaim"); printFormatted("Hola Mundo", "ask"); ?>
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias