⊗ppSpFnIFC 12 of 83 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); ?>

Амалий вазифалар

Сатрлар билан массив берилган. Массивнинг ҳар бир элементининг матнини юқори регистрга ўгиринг.

Сатрлар билан массив берилган. Массивнинг ҳар бир элементининг матнини шақилдираб, белгилар тескари тартибда ўтиши учун ўгиринг.

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