PHP -callback-functies
Terugbelfuncties
Een callback-functie (vaak gewoon "callback" genoemd) is een functie die als argument wordt doorgegeven aan een andere functie.
Elke bestaande functie kan als callback-functie worden gebruikt. Om een functie als callback-functie te gebruiken, geeft u een string met de naam van de functie door als argument van een andere functie:
Voorbeeld
Geef een callback door aan de array_map()
functie van PHP om de lengte van elke string in een array te berekenen:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Vanaf versie 7 kan PHP anonieme functies doorgeven als callback-functies:
Voorbeeld
Gebruik een anonieme functie als callback voor de array_map()
functie van PHP:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Terugbellen in door de gebruiker gedefinieerde functies
Door de gebruiker gedefinieerde functies en methoden kunnen ook callback-functies als argumenten gebruiken. Om callback-functies binnen een door de gebruiker gedefinieerde functie of methode te gebruiken, roept u deze aan door haakjes aan de variabele toe te voegen en argumenten door te geven zoals bij normale functies:
Voorbeeld
Voer een callback uit vanuit een door de gebruiker gedefinieerde functie:
<?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");
?>