АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗ppSpFnCb 11 of 95 menu

Зваротныя функцыі ў PHP

Зваротнай функцыяй называецца функцыя, якая перадаецца параметрам у іншую функцыю.

Давайте паглядзім на прыкладзе. Няхай у нас ёсць функцыя, якая першым параметрам прымае лік, а другім параметрам - зваротную функцыю:

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

Зробім так, каб унутры функцыі наша зваротная функцыя была выклікана для перададзенага ліку:

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

Давайте цяпер паглядзім, якія ёсць варыянты перадачы зваротнай функцыі ў нашую функцыю.

Варыянт 1

Наша зваротная функцыя можа быць звычайнай функцыяй:

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

У гэтым выпадку ў якасці зваротнай функцыі мы перададзім імя нашай функцыі:

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

Унутры функцыі func наша зваротная функцыя будзе выклікана па імі.

Варыянт 2

Наша зваротная функцыя можа быць ананімнай функцыяй, запісанай у зменную:

<?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); ?>

Практычныя задачы

Дадзена функцыя, параметрам якая прымае масіў і зваротную функцыю, якая прымяняецца да кожнага элемента масіву:

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

Выклічце гэтую функцыю, у якасці параметра перадаўшы масіў з лікамі і зваротную функцыю, якая ўзводзіць перададзены лік у квадрат.

byenru