Funkcje wywołania zwrotnego PHP
Funkcje zwrotne
Funkcja zwrotna (często nazywana po prostu „callback”) to funkcja, która jest przekazywana jako argument do innej funkcji.
Dowolna istniejąca funkcja może być użyta jako funkcja zwrotna. Aby użyć funkcji jako funkcji zwrotnej, przekaż ciąg znaków zawierający nazwę funkcji jako argument innej funkcji:
Przykład
Przekaż wywołanie zwrotne do funkcji PHP, array_map()
aby obliczyć długość każdego łańcucha w tablicy:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Począwszy od wersji 7, PHP może przekazywać anonimowe funkcje jako funkcje zwrotne:
Przykład
Użyj funkcji anonimowej jako wywołania zwrotnego array_map()
funkcji PHP:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Wywołania zwrotne w funkcjach zdefiniowanych przez użytkownika
Funkcje i metody zdefiniowane przez użytkownika mogą również przyjmować funkcje wywołania zwrotnego jako argumenty. Aby użyć funkcji wywołania zwrotnego w funkcji lub metodzie zdefiniowanej przez użytkownika, wywołaj ją, dodając nawiasy do zmiennej i przekaż argumenty tak, jak w przypadku normalnych funkcji:
Przykład
Uruchom wywołanie zwrotne z funkcji zdefiniowanej przez użytkownika:
<?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");
?>