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");
?>
        Попробуйте сами »
    
 
        