Funções Variáveis
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 6 de 68.
As funções variáveis oferecem outra maneira de chamar funções dinamicamente em PHP. Em vez de usar call_user_func(), você pode chamar diretamente uma função tratando uma variável que contém o nome da função como se ela fosse a própria função.
A sintaxe é simples: se você tiver uma variável contendo o nome de uma função, poderá chamar essa função adicionando parênteses à variável:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Saída: Hello World!
?>This funciona também com functions que aceitam parâmetros. Basta passar os argumentos dentro dos parênteses:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Saída: Hello, Alice!
?>As funções armazenadas em variáveis oferecem uma maneira limpa e intuitiva de executar código dinamicamente. Esse recurso é particularmente útil quando você precisa chamar funções diferentes com base em condições ou na entrada do usuário, tornando seu código mais flexível e adaptável.
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 armazenada em variável com as duas medidas e imprima o resultado.
Formato da 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 casas decimais) e a terceira linha contém a largura (um número que pode conter casas decimais)
Saída esperada: O resultado do cálculo
Experimente você mesmo
<?php
// Ler as entradas
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Crie as três funções aqui (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Chame a função apropriada usando a sintaxe de função variável e armazene 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 LeaderboardPratique por conta própria: Compilador de PHP online