Функции обратного вызова PHP
Функции обратного вызова
Функция обратного вызова (часто называемая просто «обратный вызов») — это функция, которая передается в качестве аргумента в другую функцию.
Любая существующая функция может быть использована в качестве функции обратного вызова. Чтобы использовать функцию в качестве функции обратного вызова, передайте строку, содержащую имя функции, в качестве аргумента другой функции:
Пример
Передайте обратный вызов array_map()
функции PHP для вычисления длины каждой строки в массиве:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Начиная с версии 7, PHP может передавать анонимные функции в качестве функций обратного вызова:
Пример
Используйте анонимную функцию в качестве обратного вызова для array_map()
функции PHP:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Обратные вызовы в пользовательских функциях
Пользовательские функции и методы также могут принимать функции обратного вызова в качестве аргументов. Чтобы использовать функции обратного вызова внутри определяемой пользователем функции или метода, вызовите ее, добавив круглые скобки к переменной и передав аргументы, как в обычных функциях:
Пример
Запустите обратный вызов из пользовательской функции:
<?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");
?>