⊗ppSpFnCb 11 of 83 menu

PHP atpakaļizsaukuma funkcijas

Atpakaļizsaukums ir funkcija, kas tiek nodota kā parametrs citai funkcijai.

Apskatīsim piemēru. Pieņemsim, ka mums ir funkcija, kas pirmais parametrs pieņem skaitli, bet otrais parametrs - atpakaļizsaukumu:

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

Izpildīsim tā, lai funkcijas iekšienē mūsu atpakaļizsaukums tiktu izsaukts ar nodoto skaitli:

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

Tagad apskatīsim, kādi ir varianti, kā nodot atpakaļizsaukumu mūsu funkcijā.

1. variants

Mūsu atpakaļizsaukums var būt parasta funkcija:

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

Šajā gadījumā kā atpakaļizsaukumu mēs nododam mūsu funkcijas nosaukumu:

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

Funkcijas func iekšienē mūsu atpakaļizsaukums tiks izsaukts pēc nosaukuma.

2. variants

Mūsu atpakaļizsaukums var būt anonīma funkcija, ierakstīta mainīgajā:

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

Šajā gadījumā mēs kā parametru nododam mainīgo ar mūsu funkciju:

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

3. variants

Var nodot anonīmo funkciju uzreiz kā parametru:

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

4. variants

Var saīsināt kodu, izmantojot arrow funkciju:

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

Praktiskie uzdevumi

Dota funkcija, kas parametru pieņem massīvu un atpakaļizsaukumu, kas tiks piemērots katram massīva elementam:

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

Izsauciet šo funkciju, kā parametru nododot massīvu ar skaitļiem un atpakaļizsaukumu, kas paceļ nodoto skaitli kvadrātā.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt