⊗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 може да буде анонимна функција, уписанa у променљиву:

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

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

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

Вариант 3

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

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

Вариант 4

Код се може скратити коришћењем arrow функције:

<?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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј