⊗ppSpFnIFC 12 of 83 menu

Callbacki we wbudowanych funkcjach w PHP

W PHP istnieje szereg wbudowanych funkcji, które przyjmują callbacki jako parametr. Ogólną zasadę pracy z nimi poznamy na przykładzie funkcji array_map. Ta funkcja przyjmuje jako pierwszy parametr callback, a jako drugi - tablicę. Funkcja stosuje callback do każdego elementu tablicy i zwraca zmodyfikowaną tablicę.

Przyjrzyjmy się opcjom użycia tej funkcji, uwzględniając wiedzę, którą wcześniej zdobyliśmy.

Opcja 1

Pobierzmy pierwiastek kwadratowy z każdego elementu tablicy za pomocą wbudowanej funkcji sqrt. Aby to zrobić, jako callback przekażemy parametrem ciąg znaków z nazwą tej funkcji:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map('sqrt', $arr); var_dump($res); ?>

Opcja 2

Podnieśmy każdy element tablicy do kwadratu za pomocą utworzonej przez nas zwykłej funkcji. Aby to zrobić, jako callback parametrem przekażemy ciąg znaków z nazwą tej funkcji:

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

Opcja 3

Przekształćmy naszą funkcję na funkcję anonimową, zapisaną w zmiennej:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

Opcja 4

Przekażmy funkcję anonimową parametrem:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

Opcja 5

Użyjmy funkcji strzałkowej:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(fn ($num) => $num ** 2, $arr); var_dump($res); ?>

Opcja 6

Niech teraz potęga, do której trzeba podnieść liczbę, będzie określona przez zewnętrzną zmienną callbacka. Skorzystajmy z tej zmiennej, uzyskując do niej dostęp poprzez use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

Opcja 7

Przepiszmy poprzedni kod za pomocą funkcji strzałkowej. Teraz zmienna $pow będzie dostępna automatycznie:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($res); ?>

Zadania praktyczne

Dana jest tablica z ciągami znaków. Przetłumacz tekst każdego elementu tablicy na wielkie litery.

Dana jest tablica z ciągami znaków. Odwróć tekst każdego elementu tablicy tak, aby znaki szły w odwrotnej kolejności.

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ć