⊗ppSpFnCb 11 of 83 menu

Callback-funksjoner i PHP

En callback er en funksjon som overføres som en parameter til en annen funksjon.

La oss se på et eksempel. Anta at vi har en funksjon som tar imot et tall som første parameter, og en callback som andre parameter:

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

La oss gjøre slik at inne i funksjonen blir vår callback kalt for det overførte tallet:

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

La oss nå se på hvilke alternativer som finnes for å overføre en callback til funksjonen vår.

Alternativ 1

Vår callback kan være en vanlig funksjon:

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

I dette tilfellet overfører vi navnet på funksjonen vår som callback:

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

Inne i funksjonen func vil callback-en vår bli kalt på ved navn.

Alternativ 2

Vår callback kan være en anonym funksjon som er lagret i en variabel:

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

I dette tilfellet overfører vi variabelen med funksjonen vår som en parameter:

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

Alternativ 3

Du kan overføre en anonym funksjon umiddelbart som en parameter:

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

Alternativ 4

Du kan forkorte koden ved å bruke pilfunksjoner:

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

Praktiske oppgaver

Gitt en funksjon som tar imot en array og en callback som parameter, som vil bli brukt på hvert element i arrayen:

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

Kall denne funksjonen, og overfør en array med tall og en callback som parameter, som opphøyer det overførte tallet i andre potens.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis