⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել