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