Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗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