⊗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

Да користиме arrow функција:

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

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