⊗ppSpFnCb 11 of 83 menu

Callback-funktiot PHP:ssä

Callback on funktio, joka välitetään parametrina toiseen funktioon.

Katsotaanpa esimerkkiä. Oletetaan, että meillä on funktio, joka ottaa ensimmäisenä parametrina numeron, ja toisena parametrina - callbackin:

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

Tehdään niin, että funktion sisällä meidän callbackia kutsutaan annetulle numerolle:

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

Katsotaan nyt, mitä vaihtoehtoja callbackin välittämiseksi funktioomme on.

Vaihtoehto 1

Callbackimme voi olla tavallinen funktio:

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

Tässä tapauksessa callbackina välitämme funktiomme nimen:

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

Funktion func sisällä meidän callbackia kutsutaan nimellä.

Vaihtoehto 2

Callbackimme voi olla nimetön funktio, kirjoitettu muuttujaan:

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

Tässä tapauksessa parametrina välitämme muuttujan funktiollamme:

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

Vaihtoehto 3

Nimetön funktio voidaan välittää välittömästi parametrina:

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

Vaihtoehto 4

Koodia voidaan lyhentää käyttämällä nuolifunktiota:

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

Käytännön tehtävät

Annettu funktio, joka ottaa parametrina taulukon ja callbackin, jota sovelletaan jokaiseen taulukon elementtiin:

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

Kutsu tätä funktiota välittämällä parametrina taulukko numeroilla ja callback, joka nostaa annetun numeron neliöön.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää