⊗ppSpFnCb 11 of 83 menu

Callback funkcie v PHP

Callback je funkcia, ktorá sa odovzdáva ako parameter do inej funkcie.

Pozrime sa na príklad. Predpokladajme, že máme funkciu, ktorá ako prvý parameter prijíma číslo, a ako druhý parameter - callback:

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

Urobme to tak, aby vo vnútri funkcie bol náš callback zavolaný s odovzdaným číslom:

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

Pozrime sa teraz, aké možnosti odovzdania callbacku do našej funkcie existujú.

Možnosť 1

Našim callbackom môže byť obyčajná funkcia:

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

V tomto prípade ako callback odovzdáme meno našej funkcie:

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

Vo vnútri funkcie func bude náš callback zavolaný podľa mena.

Možnosť 2

Našim callbackom môže byť anonymná funkcia, zapísaná do premennej:

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

V tomto prípade ako parameter odovzdáme premennú s našou funkciou:

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

Možnosť 3

Môžeme odovzdať anonymnú funkciu priamo ako parameter:

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

Možnosť 4

Môžeme skrátiť kód pomocou arrow funkcie:

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

Praktické úlohy

Daná je funkcia, ktorá ako parameter prijíma pole a callback, ktorý sa aplikuje na každý prvok poľa:

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

Zavolajte túto funkciu, ako parameter odovzdajte pole s číslami a callback, ktorý umocní odovzdané číslo na druhú.

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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť