PHP -Callback-Funktionen
Callback-Funktionen
Eine Callback-Funktion (oft nur als "Callback" bezeichnet) ist eine Funktion, die als Argument an eine andere Funktion übergeben wird.
Jede vorhandene Funktion kann als Callback-Funktion verwendet werden. Um eine Funktion als Callback-Funktion zu verwenden, übergeben Sie einen String mit dem Namen der Funktion als Argument einer anderen Funktion:
Beispiel
Übergeben Sie einen Callback an die PHP- array_map()
Funktion, um die Länge jeder Zeichenfolge in einem Array zu berechnen:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Ab Version 7 kann PHP anonyme Funktionen als Callback-Funktionen übergeben:
Beispiel
Verwenden Sie eine anonyme Funktion als Callback für die PHP- array_map()
Funktion:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Rückrufe in benutzerdefinierten Funktionen
Benutzerdefinierte Funktionen und Methoden können auch Callback-Funktionen als Argumente annehmen. Um Rückruffunktionen innerhalb einer benutzerdefinierten Funktion oder Methode zu verwenden, rufen Sie sie auf, indem Sie der Variablen Klammern hinzufügen und Argumente wie bei normalen Funktionen übergeben:
Beispiel
Führen Sie einen Rückruf von einer benutzerdefinierten Funktion aus:
<?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");
?>