⊗ppSpFnCb 11 of 83 menu

Callback функции во PHP

Callback е функција која се пренесува како параметар во друга функција.

Да погледнеме на пример. Нека имаме функција која како прв параметар прифаќа број, а како втор параметар - callback:

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

Да направиме така што внатре во функцијата нашиот callback да се повика за пренесениот број:

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

Сега да видиме какви опции за пренесување на callback во нашата функција постојат.

Опција 1

Нашиот callback може да биде обична функција:

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

Во овој случај како callback ќе го пренесеме името на нашата функција:

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

Внатре во функцијата func нашиот callback ќе се повика по име.

Опција 2

Нашиот callback може да биде анонимна функција, запишана во променлива:

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

Во овој случај како параметар ја пренесуваме променливата со нашата функција:

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

Опција 3

Може да се пренесе анонимна функција веднаш како параметар:

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

Опција 4

Може да се скрати кодот, користејќи стрелка функција:

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

Практични задачи

Дадена е функција, која како параметар прифаќа низа и callback, кој ќе се примени на секој елемент од низата:

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

Повикајте ја оваа функција, како параметар пренесувајќи низа со броеви и callback, кој го подига пренесениот број на квадрат.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј