⊗ppSpFnIFC 12 of 83 menu

Callbacks i indbyggede funktioner i PHP

I PHP er der en række indbyggede funktioner, som tager callbacks som parameter. Vi vil studere det generelle princip for arbejde med dem ved hjælp af funktionen array_map som eksempel. Denne funktion tager en callback som første parameter og et array som andet. Funktionen anvender callbacken på hvert element i arrayet og returnerer det modificerede array.

Lad os se på mulighederne for at bruge denne funktion i lyset af de kendskaber, vi tidligere har erhvervet.

Mulighed 1

Lad os udtrække kvadratroden af hvert element i arrayet ved hjælp af den indbyggede funktion sqrt. For at gøre dette, sender vi navnet på denne funktion som en streng i callback-parameteren:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map('sqrt', $arr); var_dump($res); ?>

Mulighed 2

Lad os opløfte hvert element i arrayet til anden potens ved hjælp af en almindelig funktion, vi har oprettet. For at gøre dette, sender vi navnet på denne funktion som en streng i callback-parameteren:

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

Mulighed 3

Lad os ændre vores funktion til en anonym funktion, gemt i en variabel:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

Mulighed 4

Lad os sende den anonyme funktion som en parameter:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

Mulighed 5

Lad os bruge en pilfunktion:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(fn ($num) => $num ** 2, $arr); var_dump($res); ?>

Mulighed 6

Lad eksponenten, som tallet skal opløftes til, nu være defineret af en ekstern variabel for callbacken. Lad os bruge denne variabel ved at få adgang til den via use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

Mulighed 7

Lad os omskrive den foregående kode ved hjælp af en pilfunktion. Nu vil variablen $pow være tilgængelig automatisk:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($res); ?>

Praktiske opgaver

Der er givet et array med strenge. Oversæt teksten i hvert element i arrayet til store bogstaver.

Der er givet et array med strenge. Vend teksten i hvert element i arrayet om, så tegnene står i omvendt rækkefølge.

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