Menu
Coddy logo textTech

Uso de 'call_user_func'

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

La función call_user_func() proporciona una forma potente de llamar a funciones dinámicamente en PHP. En lugar de llamar a una función directamente por su nombre, puedes almacenar el nombre de la función en una variable de cadena y usar call_user_func() para ejecutarla.

Aquí está la sintaxis básica:

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

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

Esto resulta especialmente útil cuando necesitas llamar a diferentes funciones basándote en la entrada del usuario o en condiciones. También puedes pasar argumentos a la función incluyéndolos como parámetros adicionales:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Salida: 8
?>

Esta llamada dinámica a funciones es especialmente valiosa al crear aplicaciones flexibles donde la función específica a ejecutar se determina en tiempo de ejecución, como calculadoras, procesadores de comandos o sistemas de enrutamiento.

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: multiply que tome dos números y devuelva su producto, subtract que tome dos números y devuelva su diferencia, y divide que tome dos números y devuelva su cociente.

Recibirás tres entradas: el nombre de la operación ("multiply", "subtract" o "divide") y dos números. Lee las tres entradas, utiliza call_user_func() para ejecutar la función correspondiente con los dos números 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 primer número, la tercera línea contiene el segundo número

Resultado esperado: El resultado de la operación

Hoja de referencia

La función call_user_func() le permite llamar a funciones de forma dinámica utilizando una variable de cadena que contiene el nombre de la función:

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

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

Puede pasar argumentos a la función incluyéndolos como parámetros adicionales:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Salida: 8
?>

Pruébalo tú mismo

<?php
// Leer la entrada
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Crear las tres funciones (multiply, subtract, divide) aquí

// TODO: Usar call_user_func() para ejecutar la función apropiada

// Mostrar 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