⊗ppSpFnCb 11 of 83 menu

Funksionet Callback në PHP

Callback quhet një funksion, që i transmetohet si parametër një funksioni tjetër.

Le të shohim një shembull. Le të themi se kemi një funksion që si parametër të parë pranon një numër, kurse si parametër të dytë - një callback:

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

Le ta bëjmë që brenda funksionit callback-i ynë të thirret për numrin e transmetuar:

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

Le të shohim tani se cilat janë variantet e transmetimit të callback-ut në funksionin tonë.

Varianti 1

Callback-i ynë mund të jetë një funksion i zakonshëm:

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

Në këtë rast si callback do të transmetojmë emrin e funksionit tonë:

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

Brenda funksionit func callback-i ynë do të thirret me emër.

Varianti 2

Callback-i ynë mund të jetë një funksion anonim, i regjistruar në një variabël:

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

Në këtë rast ne si parametër e transmetojmë variablin me funksionin tonë:

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

Varianti 3

Mund të transmetohet një funksion anonim menjëherë si parametër:

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

Varianti 4

Mund të shkurtohet kodi, duke përdorur funksionin me shigjetë:

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

Detyra praktike

Është dhënë një funksion që si parametër pranon nje array dhe një callback, i cili do të aplikohet për çdo element të array-it:

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

Thirreni këtë funksion, duke i transmetuar si parametra një array me numra dhe një callback që e ngre numrin e transmetuar në katror.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo