PHP Функції зворотного виклику
Функції зворотного виклику
Функція зворотного виклику (Callback Function) (часто її називають просто "зворотний виклик") — це функція, яка передається як аргумент іншій функції.
Будь-яку існуючу функцію можна використовувати як функцію зворотного виклику. Щоб використовувати функцію як функцію зворотного виклику, передайте рядок, що містить назву функції, як аргумент іншої функції:
Приклад
Передайте зворотний виклик до 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" як функції зворотного виклику printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>
Спробуйте самі »