Menu
CoddyTech

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 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");  // Imprime: Hello, Alice!
?>

Las funciones variables ofrecen una forma clara e intuitiva de ejecutar código dinámicamente. Esta característica es especialmente útil cuando necesitas llamar a distintas funciones según las condiciones o la entrada del usuario, lo que hace que tu código sea más flexible y adaptable.

challenge icon

Desafío

Fácil

Crea tres funciones: calculateArea, que recibe dos números (la longitud y el 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"), la longitud y el ancho. Lee las tres entradas, almacena el nombre de la función en una variable y llama a esa función usando la sintaxis de funciones variables con las dos medidas. Guarda lo que devuelve en $result: la línea debajo de tu código lo imprime.

Formato de entrada: Tres líneas: la primera contiene el nombre de la operación, la segunda contiene la longitud (un número que puede tener decimales) y la tercera contiene el ancho (un número que puede tener decimales).

Salida esperada: El resultado del cálculo

Pruébalo tú mismo

<?php
// Lee los datos de entrada
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

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

// TODO: Llama a la función adecuada usando la sintaxis de funciones variables y guarda el resultado en $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

Practica por tu cuenta: Compilador de PHP online