Funções Variáveis
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 6 de 68.
Funções variáveis oferecem outra maneira de chamar funções dinamicamente no PHP. Em vez de usar call_user_func(), você pode chamar uma função diretamente tratando uma variável que contém o nome da função como se fosse a própria função.
A sintaxe é simples: se você tem uma variável contendo o nome de uma função, você pode chamar essa função adicionando parênteses à variável:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Saída: Hello World!
?>Isso também funciona com funções que aceitam parâmetros. Você simplesmente passa os argumentos dentro dos parênteses:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Saída: Hello, Alice!
?>Funções variáveis fornecem uma maneira limpa e intuitiva de executar código dinamicamente. Este recurso é particularmente útil quando você precisa chamar funções diferentes com base em condições ou entrada do usuário, tornando seu código mais flexível e adaptável.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilCrie três funções: calculateArea que recebe dois números (comprimento e largura) e retorna o produto deles, calculatePerimeter que recebe dois números e retorna o dobro da soma deles, e calculateDiagonal que recebe dois números e retorna a raiz quadrada da soma de seus quadrados.
Você receberá três entradas: o nome da operação ("area", "perimeter", ou "diagonal"), o comprimento e a largura. Leia as três entradas, armazene o nome da função em uma variável, chame essa função usando a sintaxe de função variável com as duas medidas 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 comprimento (um número que pode conter decimais), a terceira linha contém a largura (um número que pode conter decimais)
Saída esperada: O resultado do cálculo
Folha de consulta
Funções variáveis permitem que você chame funções dinamicamente, tratando uma variável que contém o nome da função como a própria função.
Sintaxe básica - adicione parênteses a uma variável que contém o nome de uma função:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Outputs: Hello World!
?>Funções variáveis também funcionam com parâmetros:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Outputs: Hello, Alice!
?>Experimente você mesmo
<?php
// Ler entradas
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Criar as três funções aqui (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Chamar a função apropriada usando a sintaxe de função variável e armazenar o resultado
// Exibir o resultado
echo $result;
?>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
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard