⊗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çeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу