⊗ppSpFnCb 11 of 83 menu

Funkcje zwrotne (callback) w PHP

Funkcją zwrotną (callback) nazywa się funkcja, która jest przekazywana jako parametr do innej funkcji.

Spójrzmy na przykład. Załóżmy, że mamy funkcję, która jako pierwszy parametr przyjmuje liczbę, a jako drugi parametr - funkcję zwrotną (callback):

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

Zróbmy tak, aby wewnątrz funkcji nasza funkcja zwrotna została wywołana dla przekazanej liczby:

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

Zobaczmy teraz, jakie są warianty przekazania funkcji zwrotnej do naszej funkcji.

Wariant 1

Nasza funkcja zwrotna może być zwykłą funkcją:

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

W tym przypadku jako funkcję zwrotną przekażemy nazwę naszej funkcji:

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

Wewnątrz funkcji func nasza funkcja zwrotna zostanie wywołana po nazwie.

Wariant 2

Nasza funkcja zwrotna może być funkcją anonimową, zapisaną w zmiennej:

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

W tym przypadku jako parametr przekazujemy zmienną z naszą funkcją:

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

Wariant 3

Można przekazać funkcję anonimową od razu jako parametr:

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

Wariant 4

Można skrócić kod, używając funkcji strzałkowej:

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

Zadania praktyczne

Dana jest funkcja, która jako parametr przyjmuje tablicę i funkcję zwrotną (callback), która zostanie zastosowana do każdego elementu tablicy:

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

Wywołaj tę funkcję, przekazując jako parametr tablicę z liczbami oraz funkcję zwrotną, która podnosi przekazaną liczbę do kwadratu.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć