⊗ppSpFnCb 11 of 83 menu

Callback funkcije v PHP-ju

Callback je funkcija, ki se posreduje kot parameter drugi funkciji.

Poglejmo si primer. Recimo, da imamo funkcijo, ki sprejme število kot prvi parameter, in callback kot drugi parameter:

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

Naredimo tako, da znotraj funkcije naš callback pokličemo za posredovano število:

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

Poglejmo si zdaj, katere možnosti posredovanja callbacka v našo funkcijo obstajajo.

Možnost 1

Naš callback je lahko običajna funkcija:

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

V tem primeru kot callback posredujemo ime naše funkcije:

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

Znotraj funkcije func bo naš callback poklican po imenu.

Možnost 2

Naš callback je lahko anonimna funkcija, zapisana v spremenljivko:

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

V tem primeru kot parameter posredujemo spremenljivko z našo funkcijo:

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

Možnost 3

Anonimno funkcijo lahko posredujemo takoj kot parameter:

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

Možnost 4

Kodo lahko skrajšamo z uporabo strelične funkcije:

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

Praktične naloge

Podana je funkcija, ki kot parameter sprejme tabelo in callback, ki se uporabi za vsak element tabele:

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

Pokličite to funkcijo, kot parameter posredujte tabelo s števili in callback, ki posredovano število kvadrira.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni