⊗ppSpFnCb 11 of 83 menu

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.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen