PHP -terugbelfunksies
Terugbelfunksies
'n Terugbelfunksie (dikwels na verwys as net "terugbel") is 'n funksie wat as 'n argument na 'n ander funksie oorgedra word.
Enige bestaande funksie kan as 'n terugbelfunksie gebruik word. Om 'n funksie as 'n terugbelfunksie te gebruik, gee 'n string wat die naam van die funksie bevat as die argument van 'n ander funksie:
Voorbeeld
Stuur 'n terugbel na PHP se array_map()
funksie om die lengte van elke string in 'n skikking te bereken:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Begin met weergawe 7, kan PHP anonieme funksies as terugbelfunksies deurgee:
Voorbeeld
Gebruik 'n anonieme funksie as 'n terugbel vir PHP se array_map()
funksie:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Terugroepe in gebruikergedefinieerde funksies
Gebruikergedefinieerde funksies en metodes kan ook terugbelfunksies as argumente neem. Om terugbelfunksies binne 'n gebruikergedefinieerde funksie of metode te gebruik, noem dit deur hakies by die veranderlike te voeg en argumente deur te gee soos met normale funksies:
Voorbeeld
Begin 'n terugbel vanaf 'n gebruikergedefinieerde funksie:
<?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");
?>