Menu
Coddy logo textTech

Funciones variables

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 6 de 68.

Las funciones variables ofrecen otra forma de llamar a funciones dinámicamente en PHP. En lugar de usar call_user_func(), puedes llamar directamente a una función tratando a una variable que contiene el nombre de la función como si fuera la función misma.

La sintaxis es sencilla: si tienes una variable que contiene el nombre de una función, puedes llamar a esa función añadiendo paréntesis a la variable:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // Salida: Hello World!
?>

Esto también funciona con funciones que aceptan parámetros. Simplemente pasas los argumentos dentro de los paréntesis:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // Salida: Hello, Alice!
?>

Las funciones variables proporcionan una forma limpia e intuitiva de ejecutar código de forma dinámica. Esta característica es particularmente útil cuando necesitas llamar a diferentes funciones basándose en condiciones o en la entrada del usuario, haciendo que tu código sea más flexible y adaptable.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Crea tres funciones: calculateArea que recibe dos números (largo y ancho) y devuelve su producto, calculatePerimeter que recibe dos números y devuelve el doble de su suma, y calculateDiagonal que recibe dos números y devuelve la raíz cuadrada de la suma de sus cuadrados.

Recibirás tres entradas: el nombre de la operación ("area", "perimeter" o "diagonal"), el largo y el ancho. Lee las tres entradas, guarda el nombre de la función en una variable, llama a esa función utilizando la sintaxis de funciones variables con las dos medidas e imprime el resultado.

Formato de entrada: Tres líneas - la primera línea contiene el nombre de la operación, la segunda línea contiene el largo (un número que puede contener decimales), la tercera línea contiene el ancho (un número que puede contener decimales)

Resultado esperado: El resultado del cálculo

Hoja de referencia

Las funciones variables le permiten llamar a funciones de forma dinámica tratando a una variable que contiene el nombre de la función como la función misma.

Sintaxis básica - añada paréntesis a una variable que contiene el nombre de una función:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // Salida: Hello World!
?>

Las funciones variables también funcionan con parámetros:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // Salida: Hello, Alice!
?>

Pruébalo tú mismo

<?php
// Leer entradas
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: Crear las tres funciones aquí (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: Llamar a la función apropiada usando la sintaxis de función variable y almacenar el resultado

// Imprimir el resultado
echo $result;
?>
quiz iconPonte a prueba

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