⊗ppSpFnCb 11 of 83 menu

Callback-functies in PHP

Een callback is een functie, die als parameter wordt doorgegeven aan een andere functie.

Laten we een voorbeeld bekijken. Stel we hebben een functie die als eerste parameter een getal accepteert, en als tweede parameter - een callback:

<?php function func($num, $calb) { } ?>

Laten we ervoor zorgen dat binnen de functie onze callback wordt aangeroepen voor het doorgegeven getal:

<?php function func($num, $calb) { echo $calb($num); } ?>

Laten we nu bekijken welke opties er zijn om een callback aan onze functie door te geven.

Optie 1

Onze callback kan een gewone functie zijn:

<?php function calb($num) { return $num ** 2; } ?>

In dit geval geven we als callback de naam van onze functie door:

<?php func(3, 'calb'); ?>

Binnen de functie func zal onze callback bij naam worden aangeroepen.

Optie 2

Onze callback kan een anonieme functie zijn, opgeslagen in een variabele:

<?php $calb = function($num) { return $num ** 2; }; ?>

In dit geval geven we als parameter de variabele met onze functie door:

<?php func(3, $calb); ?>

Optie 3

Je kunt de anonieme functie direct als parameter doorgeven:

<?php func(3, function($num) { return $num ** 2; }); ?>

Optie 4

Je kunt de code verkorten door gebruik te maken van een pijlfunctie:

<?php func(3, fn($num) => $num ** 2); ?>

Praktische opdrachten

Gegeven een functie die als parameter een array en een callback accepteert, die wordt toegepast op elk element van de array:

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Roep deze functie aan, waarbij je als parameter een array met getallen en een callback doorgeeft, die het doorgegeven getal kwadrateert.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren