Guia rápido para a função de retorno de chamada do PHP

O objetivo deste artigo é aprender as funções de callback do PHP , bem como criá-las e usá-las. Além disso, abordaremos alguns tópicos avançados, como o uso de funções anônimas e encerramentos.

Como desenvolvedor PHP, é importante entender as funções de callback, pois elas permitem criar aplicações mais dinâmicas e flexíveis.

Um argumento da função de retorno de chamada do PHP é passado para outra função como um argumento, e essa função é então responsável por executar a função de retorno de chamada.

Há uma variedade de finalidades para as quais as funções de retorno de chamada do PHP podem ser usadas, como manipulação de eventos, filtragem de dados e mapeamento de dados.

Não importa se você é um novo desenvolvedor PHP ou se já trabalha com PHP há muito tempo, este artigo o ajudará a entender melhor como tornar seu código PHP mais poderoso e flexível usando funções de retorno de chamada do PHP.



Funções de retorno do PHP

O termo função de retorno de chamada (ou mais comumente “ retorno de chamada ”) refere-se a uma função que é passada como um argumento para outra função para executar uma ação.

Você pode usar qualquer função existente como retorno de chamada. Uma função de retorno de chamada pode ser criada passando uma string contendo o nome da função de retorno de chamada como argumento para a próxima função que está sendo chamada.

No exemplo a seguir, para cada string em um array, você pode passar uma função callback para a função array_map() do PHP para que ela calcule seu comprimento:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function callback_function($array) {
return strlen($array);
}
$array = ["Jimmy Carter", "Barack Obama", "Joe Biden", "Bin Clinton", "Donald Trump"];
$len = array_map("callback_function", $array);
print_r($len);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Desde a versão 7 do PHP, funções anônimas podem ser passadas como funções de retorno de chamada para o script.
A função array_map() do PHP pode ser usada como retorno de chamada usando uma função anônima:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$array = ["Jimmy Carter", "Barack Obama", "Joe Biden", "Bin Clinton", "Donald Trump"];
$len = array_map( function($data) {
return strlen($data);
} , $array);
print_r($len);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Funções de retorno de chamada definidas pelo usuário

Uma função de retorno de chamada também pode ser passada como um argumento para qualquer função ou método definido pelo usuário.

Se você quiser chamar uma função de retorno de chamada dentro de uma função ou método definido pelo usuário, precisará colocar parênteses em torno da variável e passar seus argumentos como faria normalmente com uma função.

Callbacks podem ser enviados de funções definidas pelo usuário da seguinte maneira:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function square($num1){
return "The square of $num1 is: ".$num1 * $num1;
}
function printFunction($num1, $format) {
// Calling the $format callback function
echo $format($num1);
}
// callback functions to printFormatted()
printFunction("2", "square");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Usando uma função de retorno de chamada definida pelo usuário, podemos exibir um nome completo usando dois métodos diferentes e imprimi-lo criando a nova função printFunction():

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function firstname($string){
return $string;
}
function lastname($string){
return $string;
}
function printFunction($string, $format) {
// Calling the $format callback function
echo $format($string);
}
// callback functions to printFormatted()
printFunction("Mark ", "firstname");
printFunction("Zuckerberg", "lastname");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No exemplo acima, printFunction() é uma função de ordem superior que aceita dois argumentos: uma string e um nome de função de callback ( $format ).

A função printFunction() pega o argumento $string e chama a função callback passada como $format com $string como argumento. O resultado da função de retorno de chamada é impresso na tela usando echo .

No código fornecido, duas funções de retorno de chamada são definidas:

nome() e sobrenome() .

Essas funções simplesmente retornam a string que é passada como um argumento.

A função printFunction() é então chamada duas vezes com diferentes strings e funções de callback.

  • A primeira chamada passa a string Mark  e a função callback firstname() como argumentos.
  • A segunda chamada passa a string Zuckerberg  e a função callback lastname() como argumentos.

Quando o código for executado, a saída será:

Funções de retorno de chamada PHP

Isso ocorre porque a função printFunction() chama a respectiva função de retorno de chamada (firstname() ou lastname()) com o argumento de string fornecido e, em seguida, imprime o resultado na tela .

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone