Menu
Coddy logo textTech

Usando 'call_user_func'

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 5 de 68.

A função call_user_func() fornece uma maneira poderosa de chamar funções dinamicamente no PHP. Em vez de chamar uma função diretamente pelo seu nome, você pode armazenar o nome da função em uma variável de string e usar call_user_func() para executá-la.

Aqui está a sintaxe básica:

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

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

Isso se torna especialmente útil quando você precisa chamar funções diferentes com base na entrada do usuário ou em condições. Você também pode passar argumentos para a função incluindo-os como parâmetros adicionais:

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

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

Essa chamada de função dinâmica é particularmente valiosa ao construir aplicações flexíveis onde a função específica a ser executada é determinada em tempo de execução, como calculadoras, processadores de comandos ou sistemas de roteamento.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Crie três funções: multiply que recebe dois números e retorna o produto deles, subtract que recebe dois números e retorna a diferença entre eles, e divide que recebe dois números e retorna o quociente deles.

Você receberá três entradas: o nome da operação ("multiply", "subtract" ou "divide") e dois números. Leia as três entradas, use call_user_func() para executar a função apropriada com os dois números e imprima o resultado.

Formato de entrada: Três linhas - a primeira linha contém o nome da operação, a segunda linha contém o primeiro número, a terceira linha contém o segundo número

Saída esperada: O resultado da operação

Folha de consulta

A função call_user_func() permite que você chame funções dinamicamente usando uma variável de string contendo o nome da função:

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

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

Você pode passar argumentos para a função incluindo-os como parâmetros adicionais:

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

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

Experimente você mesmo

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

// TODO: Criar as três funções (multiply, subtract, divide) aqui

// TODO: Usar call_user_func() para executar a função apropriada

// Exibir o resultado
echo $result;
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo