Funciones de flecha
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 3 de 68.
Las funciones de flecha, introducidas en PHP 7.4, proporcionan una forma más concisa de escribir funciones anónimas simples. Utilizan la palabra clave fn en lugar de la sintaxis completa function, haciendo que tu código sea más corto y limpio.
Aquí tienes cómo crear una función de flecha:
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // Salida: Hello, Alice!
?>Observe las diferencias clave: las funciones de flecha usan fn en lugar de function, tienen una flecha => que apunta a la expresión y no necesitan llaves ni una sentencia return para expresiones simples.
La mayor ventaja de las funciones de flecha es que capturan automáticamente las variables del ámbito superior; no se necesita la palabra clave use:
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Salida: Welcome, Bob!
?>Las funciones de flecha son perfectas para operaciones cortas y simples donde la sintaxis tradicional de las funciones anónimas resulta demasiado verbosa.
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 una arrow function que tome el nombre de un producto como parámetro y devuelva una etiqueta de producto formateada. La arrow function debe capturar el nombre de una categoría del ámbito circundante.
Recibirás dos entradas: el nombre de la categoría y el nombre del producto. Lee ambas entradas, crea una arrow function que capture la categoría y formatee la etiqueta del producto como "[Category] Product", llama a la arrow function con el nombre del producto y muestra el resultado.
Formato de entrada: Dos líneas - la primera línea contiene el nombre de la categoría, la segunda línea contiene el nombre del producto
Salida esperada: La etiqueta del producto formateada en el formato "[Category] Product"
Hoja de referencia
Las funciones de flecha utilizan la palabra clave fn y proporcionan una sintaxis concisa para funciones anónimas simples:
$greeting = fn($name) => "Hello, " . $name . "!";Características clave:
- Usa
fnen lugar defunction - La flecha
=>apunta a la expresión - No se necesitan llaves ni la sentencia
returnpara expresiones simples - Capturan automáticamente variables del ámbito padre sin la palabra clave
use
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Salida: Welcome, Bob!Pruébalo tú mismo
<?php
// Leer la entrada
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Crea una función de flecha que capture la categoría y formatee la etiqueta del producto
// Llama a la función de flecha y muestra 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