⊗ppSpFnCb 11 of 83 menu

Callback-funktioner i PHP

En callback är en funktion, som skickas som en parameter till en annan funktion.

Låt oss titta på ett exempel. Antag att vi har en funktion som tar ett nummer som sin första parameter, och en callback som sin andra parameter:

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

Låt oss göra så att inuti funktionen vår callback anropas med det skickade numret:

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

Låt oss nu se vilka alternativ som finns för att skicka en callback till vår funktion.

Alternativ 1

Vår callback kan vara en vanlig funktion:

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

I det här fallet skickar vi namnet på vår funktion som callback:

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

Inuti funktionen func kommer vår callback att anropas med dess namn.

Alternativ 2

Vår callback kan vara en anonym funktion, som lagras i en variabel:

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

I det här fallet skickar vi variabeln som innehåller vår funktion som en parameter:

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

Alternativ 3

Man kan skicka den anonyma funktionen direct som en parameter:

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

Alternativ 4

Man kan förenkla koden genom att använda en pilfunktion:

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

Praktiska uppgifter

Given en funktion som tar en array och en callback som parameter, och som applicerar callbacken på varje element i arrayen:

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

Anropa denna funktion genom att skicka en array med nummer och en callback som parameter, som kvadrerar det skickade numret.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa