Funções de Callback
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 4 de 68.
Uma função de callback é uma função que é passada como argumento para outra função. Em vez de chamar a função imediatamente, você passa o seu nome para que a função receptora possa chamá-la mais tarde, quando necessário.
Para passar uma função como um callback, você simplesmente usa o nome da função como uma string:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Realiza algum processamento...
$callback($username); // Chama a função de callback
}
processUser("Alice", "greet"); // Saída: Hello, Alice!
?>Neste exemplo, "greet" é passada como um callback para processUser(). A função processUser() então chama o callback usando a string como um nome de função.
Callbacks são incrivelmente úteis porque tornam suas funções mais flexíveis. A mesma função pode realizar ações diferentes dependendo de qual callback você passa para ela. Este conceito é fundamental para muitas das funções integradas do PHP, como array_map() e array_filter(), que você encontrará mais adiante neste curso.
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 duas funções: uma chamada formatUppercase que recebe uma string e a retorna em maiúsculas, e outra chamada formatLowercase que recebe uma string e a retorna em minúsculas.
Em seguida, crie uma função chamada applyFormat que aceita dois parâmetros: uma string de texto e o nome de uma função de callback. Esta função deve aplicar o callback ao texto e retornar o resultado.
Você receberá duas entradas: o tipo de operação ("upper" ou "lower") e o texto a ser formatado. Leia ambas as entradas, determine qual callback usar com base no tipo de operação, chame applyFormat com o callback apropriado e imprima o resultado formatado.
Formato de entrada: Duas linhas - a primeira linha contém o tipo de operação ("upper" ou "lower"), a segunda linha contém o texto a ser formatado
Saída esperada: O texto formatado com base no tipo de operação
Folha de consulta
Uma função de callback é uma função que é passada como argumento para outra função. Em vez de chamar a função imediatamente, você passa o seu nome para que a função receptora possa chamá-la mais tarde, quando necessário.
Para passar uma função como um callback, use o nome da função como uma string:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Faz algum processamento...
$callback($username); // Chama a função de callback
}
processUser("Alice", "greet"); // Saída: Hello, Alice!
?>Os callbacks tornam as funções mais flexíveis, permitindo diferentes ações dependendo de qual callback você passa para elas.
Experimente você mesmo
<?php
// Ler a entrada
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: Escreva seu código abaixo
// Criar a função formatUppercase
// Criar a função formatLowercase
// Criar a função applyFormat
// Determinar qual callback usar com base no tipo de operação
// Chamar applyFormat com o callback apropriado
// 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