⊗ppSpFnIFC 12 of 83 menu

Callback-ek a PHP beépített függvényeiben

A PHP-ban számos beépített függvény létezik, amelyek paraméterként callback-eket fogadnak. Az általános működési elvüket az array_map függvény példáján fogjuk tanulmányozni. Ez a függvény az első paraméterként egy callback-et, a második paraméterként pedig egy tömböt fogad. A függvény a callback-et a tömb minden elemére alkalmazza és visszaadja a módosított tömböt.

Nézzük meg ennek a függvénynek a használati lehetőségeit a korábban szerzett ismereteink figyelembevételével.

1. lehetőség

Vegyük ki a tömb minden elemének a négyzetgyökét a beépített sqrt függvény segítségével. Ehhez callback paraméterként a függvény nevét tartalmazó sztringet adjuk át:

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

2. lehetőség

Emeljük négyzetre a tömb minden elemét egy általunk létrehozott közönséges függvény segítségével. Ehhez callback paraméterként a függvény nevét tartalmazó sztringet adjuk át:

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

3. lehetőség

Alakítsuk át a függvényünket egy változóban tárolt névtelen függvénnyé:

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

4. lehetőség

Adjuk át a névtelen függvényt paraméterként:

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

5. lehetőség

Használjunk nyíl függvényt:

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

6. lehetőség

Legyen most a hatványkitevő, amire a számot emelni kell, a callback külső változója. Használjuk ezt a változót, hozzáférést szerezve hozzá a use segítségével:

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

7. lehetőség

Írjuk át az előző kódot nyíl függvénnyé. Most a $pow változó automatikusan elérhető lesz:

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

Gyakorlati feladatok

Adott egy sztringeket tartalmazó tömb. Alakítsa át minden tömb elem szövegét nagybetűssé.

Adott egy sztringeket tartalmazó tömb. Fordítsa meg minden tömb elem szövegét úgy, hogy a karakterek fordított sorrendben következzenek.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás