Callback-Funktionen in PHP
Ein Callback ist eine Funktion, die als Parameter an eine andere Funktion übergeben wird.
Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben eine Funktion, die als ersten Parameter eine Zahl erwartet und als zweiten Parameter - einen Callback:
<?php
function func($num, $calb)
{
}
?>
Sorgen wir dafür, dass innerhalb der Funktion unser Callback für die übergebene Zahl aufgerufen wird:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Lassen Sie uns nun sehen, welche Möglichkeiten es gibt, einen Callback an unsere Funktion zu übergeben.
Variante 1
Unser Callback kann eine gewöhnliche Funktion sein:
<?php
function calb($num) {
return $num ** 2;
}
?>
In diesem Fall übergeben wir den Namen unserer Funktion als Callback:
<?php
func(3, 'calb');
?>
Innerhalb der Funktion func wird unser
Callback beim Namen aufgerufen.
Variante 2
Unser Callback kann eine anonyme Funktion sein, die in einer Variable gespeichert ist:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
In diesem Fall übergeben wir als Parameter die Variable mit unserer Funktion:
<?php
func(3, $calb);
?>
Variante 3
Man kann die anonyme Funktion auch direkt als Parameter übergeben:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Variante 4
Man kann den Code mit einer Pfeilfunktion verkürzen:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktische Aufgaben
Gegeben ist eine Funktion, die als Parameter ein Array und einen Callback akzeptiert, der auf jedes Element des Arrays angewendet wird:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Rufen Sie diese Funktion auf, indem Sie als Parameter ein Array mit Zahlen und einen Callback übergeben, der die übergebene Zahl quadriert.