Funções de retorno de chamada PHP
Funções de retorno de chamada
Uma função de retorno de chamada (muitas vezes referida apenas como "retorno de chamada") é uma função que é passada como um argumento para outra função.
Qualquer função existente pode ser usada como uma função de retorno de chamada. Para usar uma função como função de retorno de chamada, passe uma string contendo o nome da função como argumento de outra função:
Exemplo
Passe um callback para a array_map()
função do PHP para calcular o comprimento de cada string em um array:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
A partir da versão 7, o PHP pode passar funções anônimas como funções de retorno de chamada:
Exemplo
Use uma função anônima como retorno de chamada para a array_map()
função do PHP:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Retornos de chamada em funções definidas pelo usuário
Funções e métodos definidos pelo usuário também podem receber funções de retorno de chamada como argumentos. Para usar funções de retorno de chamada dentro de uma função ou método definido pelo usuário, chame-o adicionando parênteses à variável e passe argumentos como nas funções normais:
Exemplo
Execute um retorno de chamada de uma função definida pelo usuário:
<?php
function exclaim($str) {
return $str . "! ";
}
function ask($str) {
return $str . "? ";
}
function
printFormatted($str, $format) {
// Calling the $format callback
function
echo $format($str);
}
// Pass "exclaim" and "ask" as callback
functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>