⊗ppSpFnCb 11 of 83 menu

PHP atgalinio kvietimo funkcijos

Atgalinio kvietimo funkcija yra funkcija, kuri perduodama kaip parametras į kitą funkciją.

Pažiūrėkime pavyzdį. Tarkime, kad turime funkciją, kuri pirmu parametru priima skaičių, o antru parametru - atgalinio kvietimo funkciją:

<?php function func($num, $calb) { } ?>

Padarykime taip, kad funkcijos viduje mūsų atgalinio kvietimo funkcija būtų iškviesta su perduotu skaičiumi:

<?php function func($num, $calb) { echo $calb($num); } ?>

Dabar pažiūrėkime, kokie yra atgalinio kvietimo funkcijos perdavimo į mūsų funkciją variantai.

1 variantas

Mūsų atgalinio kvietimo funkcija gali būti įprasta funkcija:

<?php function calb($num) { return $num ** 2; } ?>

Šiuo atveju kaip atgalinio kvietimo funkciją mes perduosime mūsų funkcijos pavadinimą:

<?php func(3, 'calb'); ?>

Funkcijos func viduje mūsų atgalinio kvietimo funkcija bus iškviesta pagal pavadinimą.

2 variantas

Mūsų atgalinio kvietimo funkcija gali būti anonime funkcija, įrašyta į kintamąjį:

<?php $calb = function($num) { return $num ** 2; }; ?>

Šiuo atveju mes parametru perduodame kintamąjį su mūsų funkcija:

<?php func(3, $calb); ?>

3 variantas

Galima perduoti anonime funkciją iškart kaip parametrą:

<?php func(3, function($num) { return $num ** 2; }); ?>

4 variantas

Galima sutrumpinti kodą, naudojant rodyklinę funkciją:

<?php func(3, fn($num) => $num ** 2); ?>

Praktinės užduotys

Duota funkcija, parametru priimanti masyvą ir atgalinio kvietimo funkciją, kuri bus pritaikyta kiekvienam masyvo elementui:

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Iškvieskite šią funkciją, kaip parametrą perduodant masyvą su skaičiais ir atgalinio kvietimo funkciją, kuri pakelia perduotą skaičių kvadratu.

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