⊗ppSpFnIFC 12 of 83 menu

Callback'ai įmontuotose PHP funkcijose

PHP yra keletas įmontuotų funkcijų, kurios parametru priima callback'us. Bendrą jų veikimo principą išmoksime naudodami funkcijos array_map pavyzdį. Ši funkcija pirmu parametru priima callback'ą, o antru - masyvą. Funkcija taiko callback'ą kiekvienam masyvo elementui ir grąžina pakeistą masyvą.

Pažvelkime į šios funkcijos naudojimo variantus atsižvelgdami į anksčiau gautas žinias.

Variantas 1

Paimkime kiekvieno masyvo elemento kvadratinę šaknį naudodami įmontuotą funkciją sqrt. Tam kaip callback'ą parametru perduosime eilutę su šios funkcijos pavadinimu:

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

Variantas 2

Pakelkime kiekvieną masyvo elementą kvadratu naudodami mūsų sukurtą įprastą funkciją. Tam kaip callback'ą parametru perduosime eilutę su šios funkcijos pavadinimu:

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

Variantas 3

Paverskime mūsų funkciją anonime funkcija, įrašyta į kintamąjį:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

Variantas 4

Perduokime anoniminę funkciją parametru:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

Variantas 5

Naudokime rodyklinę funkciją:

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

Variantas 6

Tegul laipsnis, kuriuo reikia pakelti skaičių, nurodomas išoriniu callback'o kintamuoju. Panaudokime šį kintamąjį, gautę prieigą prie jo per use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

Variantas 7

Perrašykime ankstesnį kodą naudodami rodyklinę funkciją. Dabar kintamasis $pow bus prieinamas automatiškai:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($res); ?>

Praktinės užduotys

Duotas masyvas su eilutėmis. Paverskite kiekvieno elemento tekstą didžiosiomis raidėmis.

Duotas masyvas su eilutėmis. Apverskite kiekvieno elemento tekstą taip, kad simboliai eitų atvirkštine tvarka.

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