⊗ppSpFnIFC 12 of 83 menu

Callbacky ve vestavěných funkcích v PHP

V PHP existuje řada vestavěných funkcí, které jako parametr přijímají callbacky. Obecný princip práce s nimi si prostudujeme na příkladu funkce array_map. Tato funkce přijímá jako první parametr callback, a jako druhý - pole. Funkce aplikuje callback na každý prvek pole a vrátí upravené pole.

Podívejme se na varianty použití této funkce s ohledem na znalosti, které jsme již získali.

Varianta 1

Získáme z každého prvku pole druhou odmocninu pomocí vestavěné funkce sqrt. K tomu jako callback předáme parametrem řetězec s názvem této funkce:

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

Varianta 2

Umocníme každý prvek pole na druhou pomocí vytvořené obyčejné funkce. K tomu jako callback předáme parametrem řetězec s názvem této funkce:

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

Varianta 3

Přepíšeme naši funkci na anonymní, zapsanou v proměnné:

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

Varianta 4

Předáme anonymní funkci parametrem:

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

Varianta 5

Použijeme arrow funkci:

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

Varianta 6

Nechť je nyní mocnina, na kterou je třeba umocnit číslo, zadána externí proměnnou callbacku. Využijeme tuto proměnnou, a získáme k ní přístup přes use:

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

Varianta 7

Přepišme předchozí kód pomocí arrow funkce. Nyní bude proměnná $pow dostupná automaticky:

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

Praktické úlohy

Je dáno pole s řetězci. Převeďte text každého prvku pole na velká písmena.

Je dáno pole s řetězci. Obraťte text každého prvku pole tak, aby znaky šly v obráceném pořadí.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout