Funções Variáveis
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 6 de 68.
As variable functions oferecem outra maneira de chamar functions dinamicamente no PHP. Em vez de usar call_user_func(), você pode chamar diretamente uma function tratando uma variable que contém o nome da function como se ela própria fosse a function.
A syntax é simples: se você tiver uma variable contendo um function name, poderá chamar essa function adicionando parênteses à variable:
<?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 variable functions fornecem uma maneira limpa e intuitiva de executar código dinamicamente. Esse recurso é particularmente útil quando você precisa chamar diferentes functions com base em condições ou na entrada do usuário, tornando seu código mais flexível e adaptável.
Desafio
FácilCreate três functions: calculateArea, que recebe dois números (length e width) 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á three inputs: o nome da operation ("area", "perimeter" ou "diagonal"), o length e o width. Leia os três inputs, store o nome da função em uma variable, call essa função using a sintaxe de função variável com as duas medidas e exiba o result.
Formato de entrada: Três linhas — a primeira linha contém o nome da operation, a segunda linha contém o length (um número que pode conter casas decimais) e a terceira linha contém o width (um número que pode conter casas decimais).
Expected output: O result 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