⊗ppSpFnIFC 12 of 83 menu

Callbacks във вградени функции в PHP

В PHP има редица вградени функции, които приемат callbacks като параметър. Общия принцип на работа с тях ще изучим на примера на функцията array_map. Тази функция приема като първи параметър callback, а като втори - масив. Функцията прилага callback към всеки елемент от масива и връща променения масив.

Нека да разгледаме вариантите на използване на тази функция, като вземем предвид знанията, които вече сме придобили.

Вариант 1

Нека извлечем от всеки елемент от масива квадратен корен с помощта на вградената функция sqrt. За целта като callback параметър ще предадем низ с името на тази функция:

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

Вариант 2

Нека повдигнем всеки елемент от масива на квадрат с помощта на създадена от нас обикновена функция. За целта като callback параметър ще предадем низ с името на тази функция:

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

Нека сега степента, на която трябва да се повдигне числото, да се задава от външна променлива на callback. Нека използваме тази променлива, като получим достъп до нея чрез 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); ?>

Практически задачи

Даден е масив от низове. Преобразувайте текста на всеки елемент от масива в главни букви.

Даден е масив от низове. Обърнете текста на всеки елемент от масива така, че символите да са в обратен ред.

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