⊗ppSpFnCb 11 of 83 menu

Callback-funktioner i PHP

En callback er en funktion, som overføres som en parameter til en anden funktion.

Lad os se på et eksempel. Antag, at vi har en funktion, som tager et tal som første parameter, og en callback som anden parameter:

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

Lad os gøre sådan, at inde i funktionen bliver vores callback kaldt med det overførte tal:

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

Lad os nu se, hvilke muligheder der er for at overføre en callback til vores funktion.

Mulighed 1

Vores callback kan være en almindelig funktion:

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

I dette tilfælde overfører vi navnet på vores funktion som callback:

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

Inde i funktionen func vil vores callback blive kaldt på navn.

Mulighed 2

Vores callback kan være en anonym funktion, gemt i en variabel:

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

I dette tilfælde overfører vi variablen med vores funktion som parameter:

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

Mulighed 3

Man kan overføre den anonyme funktion directe som parameter:

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

Mulighed 4

Man kan forkorte koden ved at bruge pilefunktion:

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

Praktiske opgaver

Der gives en funktion, som parameter tager et array og en callback, der vil blive anvendt på hvert element i arrayet:

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

Kald denne funktion, og overfør som parameter et array med tal og en callback, der opløfter det overførte tal i anden potens.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis