⊗ppSpFnCb 11 of 83 menu

Callback-funktsioonid PHP-s

Callback on funktsioon, mis edastatakse parameetrina teise funktsiooni.

Vaatame näidet. Oletame, et meil on funktsioon, mis võtab esimese parameetrina arvu ja teise parameetrina - callbacki:

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

Teeme nii, et funktsiooni sees kutsutaks meie callback etteantud arvu jaoks välja:

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

Vaatame nüüd, millised võimalused callbacki edastamiseks meie funktsiooni on.

Variant 1

Meie callback võib olla tavaline funktsioon:

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

Sel juhul edastame callbackina meie funktsiooni nime:

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

Funktsiooni func sees kutsutakse meie callback välja nime järgi.

Variant 2

Meie callback võib olla anonüümne funktsioon, kirjutatud muutujasse:

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

Sel juhul edastame parameetrina muutuja meie funktsiooniga:

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

Variant 3

Võib edastada anonüümse funktsiooni kohe parameetrina:

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

Variant 4

Saab lühendada koodi, kasutades noolfunktsiooni:

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

Praktilised ülesanded

Antud funktsioon, mis võtab parameetrina massiivi ja callbacki, mida rakendatakse iga massiivi elemendi jaoks:

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

Kutsu see funktsioon välja, edastades parameetritena numbritega massiivi ja callbacki, mis tõstab etteantud numbri ruutu.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu