Funciones callback
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 4 de 68.
Una función callback es una función que se pasa como argumento a otra función. En lugar de llamar a la función inmediatamente, pasas su nombre para que la función receptora pueda llamarla más tarde cuando sea necesario.
Para pasar una función como callback, simplemente utiliza el nombre de la función como una cadena:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Realizar algún procesamiento...
$callback($username); // Llamar a la función callback
}
processUser("Alice", "greet"); // Salida: Hello, Alice!
?>En este ejemplo, "greet" se pasa como un callback a processUser(). La función processUser() luego llama al callback utilizando la cadena como nombre de función.
Los callbacks son increíblemente útiles porque hacen que tus funciones sean más flexibles. La misma función puede realizar diferentes acciones dependiendo de qué callback le pases. Este concepto es fundamental para muchas de las funciones integradas de PHP como array_map() and array_filter(), que encontrarás más adelante en este curso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilCrea dos funciones: una llamada formatUppercase que reciba una cadena y la devuelva en mayúsculas, y otra llamada formatLowercase que reciba una cadena y la devuelva en minúsculas.
Luego, crea una función llamada applyFormat que acepte dos parámetros: una cadena de texto y el nombre de una función callback. Esta función debe aplicar el callback al texto y devolver el resultado.
Recibirás dos entradas: el tipo de operación ("upper" o "lower") y el texto a formatear. Lee ambas entradas, determina qué callback usar basándote en el tipo de operación, llama a applyFormat con el callback apropiado e imprime el resultado formateado.
Formato de entrada: Dos líneas - la primera línea contiene el tipo de operación ("upper" o "lower"), la segunda línea contiene el texto a formatear
Resultado esperado: El texto formateado basado en el tipo de operación
Hoja de referencia
Una función de callback es una función que se pasa como argumento a otra función. En lugar de llamar a la función inmediatamente, pasas su nombre para que la función receptora pueda llamarla más tarde cuando sea necesario.
Para pasar una función como callback, utiliza el nombre de la función como una cadena:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Realizar algún procesamiento...
$callback($username); // Llamar a la función de callback
}
processUser("Alice", "greet"); // Salida: Hello, Alice!
?>Los callbacks hacen que las funciones sean más flexibles al permitir diferentes acciones dependiendo de qué callback se les pase.
Pruébalo tú mismo
<?php
// Leer la entrada
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Crear la función formatUppercase
// Crear la función formatLowercase
// Crear la función applyFormat
// Determinar qué callback usar según el tipo de operación
// Llamar a applyFormat con el callback apropiado
// Imprimir el resultado
echo $result;
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación