Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppSpFnIFC 12 of 95 menu

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

У PHP ёсць шэраг убудаваных функцый, якія параметрам прымаюць зваротныя функцыі. Агульны прынцып працы з імі мы вывучым на прыкладзе функцыі array_map. Гэтая функцыя першым параметрам прымае зваротную функцыю, а другім - масіў. Функцыя ўжывае зваротную функцыю да кожнага элемента масіва і вяртае зменены масіў.

Давайце паглядзім на варыянты выкарыстання гэтай функцыі з улікам атрыманых намі раней ведаў.

Варыянт 1

Вынямем з кожнага элемента масіва квадратны корань з дапамогай убудаванай функцыі sqrt. Для гэтага ў якасці зваротнай функцыі параметрам перададзім радок з імем гэтай функцыі:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map('sqrt', $arr); var_dump($res); ?>

Варыянт 2

Возьмем кожны элемент масіва ў квадрат з дапамогай створанай намі звычайнай функцыі. Для гэтага ў якасці зваротнай функцыі параметрам перададзім радок з імем гэтай функцыі:

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

Варыянт 3

Пераробім нашу функцыю на ананімную, запісаную ў зменную:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

Варыянт 4

Перададзім ананімную функцыю параметрам:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

Варыянт 5

Выкарастаем стрэлачную функцыю:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(fn ($num) => $num ** 2, $arr); var_dump($res); ?>

Варыянт 6

Хай цяпер ступень, у якую трэба ўзвесці лік, задаецца знешняй зменнай зваротнай функцыі. Скарыстаемся гэтай зменнай, атрымаўшы да яе доступ праз use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

Варыянт 7

Перапішем папярэдні код праз стрэлачную функцыю. Цяпер зменная $pow будзе даступная аўтаматычна:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($res); ?>

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

Дадзены масіў з радкамі. Перакладзіце тэкст кожнага элемента масіва ў верхні рэгістр.

Дадзены масіў з радкамі. Перавярніце тэкст кожнага элемента масіва так, каб сімвалы ішлі у адваротным парадку.

byenru